Ограничения дочернего процесса Node.js

Я знаю, что узел — это однопоточная система, и мне было интересно, использует ли дочерний процесс свой собственный поток или своих родителей. скажем, например, у меня есть процессор amd E-350 с двумя потоками. если бы я запустил сервер узла, который породил десять дочерних экземпляров, которые все работают непрерывно. позволит ли это или не получится, поскольку самого оборудования недостаточно?


person Dennington-bear    schedule 06.07.2015    source источник
comment
процессор имеет два ядра, одно ядро ​​​​может поддерживать несколько потоков, а дочерние процессы выполняются в своих собственных потоках, поэтому ответ, конечно, да. хотя простой тест, скорее всего, привел бы вас к такому же выводу.   -  person Kevin B    schedule 06.07.2015


Ответы (1)


По собственному опыту могу сказать, что успешно создал 150 дочерних процессов внутри Amazon t2.micro всего с одним ядром.

Причина? Я сам использовал DoS для проверки ограничений моего основного сервера.

Атака продержалась 8 часов, пока я не сдался, но могла бы работать и намного дольше.

Мой код просто запускал пул HTTP-клиентов, и как только выполнялся один запрос, порождался другой. Для этого не нужно много процессора. Однако для этого требуется много сети. Большую часть времени процессы просто ждали завершения запросов.

Однако в приложении с высокой степенью параллелизма производительность будет ужасной, если вы разделяете память между таким количеством процессов.

person Gabriel Tomitsuka    schedule 06.07.2015
comment
Теперь, когда вы упомянули об этом, мне любопытно, как работает мой сервер. Можете ли вы поделиться кодом? - person hassansin; 07.07.2015
comment
@ Габриэль, можешь объяснить последнюю строку из своего ответа. - person Anirudha Gupta; 20.06.2017