Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Есть еще несколько способов, но все они либо не кроссплатформенны либо также зависят от I/O.
minimum-rpc с условиями бенчмарков, которые вы описывали в статье.socket.io обещал давать неплохие результаты при использовании тысяч различных постоянных соединений.minimum-rpc используют socket.io вместо, например, стандартных http или process.send().Runtime_CPU_time * Proc_count < Execute_CPU_time, где:Runtime_CPU_time — это количество затраченного CPU-time для запуска процесса;Execute_CPU_time — это сумма затраченного CPU-time для выполнения всех задач порученных одному процессу;Proc_count — количество одновременно запущенных процессов.process.send() упирается в I/O. Всегда есть вариант разгрузить количество (частоту) использования process.send() и объем информации, передаваемой через process.send(), в пользу самостоятельной загрузки данных процессом и последующим самостоятельным сохранением результатов.process.send(), с Вашими трудностями я не сталкивался. Правда, в последний раз это было давно, так я использовал для запуска тех скриптов NodeJS версий 0.6.x (если мне не изменяет память).Memory_limit, master-процесс уменьшал количество процессов и увеличивал количество потоков; если worker-процессы превышали CPU_limit, он увеличивал количество процессов и уменьшал количество потоков в каждом процессе. Также master-процесс останавливал перегруженные и idle процессы.child_process.spawn() (позднее появился Cluster);process.send();async.queue() модуля async.У ноды только один рабочий поток
Потоки vs процессы на примере нативного Node.js аддона для нагрузочного тестирования