Как стать автором
Обновить

Комментарии 1

Если бы Вы почитали документацию на использованный Вами модуль cluster, то увидели бы, что это не что иное, как простенький балансировщик нагрузки, который запускает несколько экземпляров изолированных процессов, распределяя между ними входящие HTTP-соединения. Т.е. это не "многопоточный" (подразумевающий общее адресное пространство для потоков) режим, а полшага к тому самому "горизонтальному" масштабированию, которое предлагается в конце статьи.

Далее, вообще-то говоря, приложения на nodejs являются многопоточными из коробки. Это js в одном экземпляре процесса выполняется в один поток, а системное API вызывается асинхронно и даже синхронные вызовы системного API прекрасно параллелятся, и степенью этого параллелизма можно даже управлять. И если по какой-то сильно специфической причине для вашего веб-сервера все же не хватило однопоточного js, есть Worker threads.

Тесты критиковать не буду: когда Вы учтете вышесказанное, то поймете, почему 16 ядер выглядят как 2,5, и проведете тесты совсем иначе.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий