2015-07-06 6 views
1

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

+1

CPU имеет два ядра, одно ядро ​​может поддерживать несколько потоков, а дочерние процессы выполняются в своих потоках, поэтому ответ, конечно, да. хотя простой тест, вероятно, привел бы вас к такому же выводу. –

ответ

2

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

Причина? Я сделал DoS-сам для тестирования пределов моего основного сервера.

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

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

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

+0

Теперь, когда вы упомянули об этом, мне любопытно, как работает мой сервер. Можете ли вы поделиться кодом? – hassansin

+0

@ Gabriel вы можете объяснить последнюю строку из своего ответа. – Adrian