В системе Ubuntu 18.04, выполняющей только сценарий 1 Node.js, который принимает поток данных, htop
показывает, что используются оба ядра ЦП.
При работающем сценарии с 1 узлом:
С запущенным скриптом NO node.js:
Этот Node.js скрипт имеет несколько прослушивателей событий, которые получают данные, выполняют некоторую обработку данных и отправляют их на удаленный сервер базы данных.
foo.on('msg', msg => { setImmediate(() => do_work(msg)) } );
Вопрос: Почему это выглядит так, как будто оба ядра ЦП используются скорее в равной степени по Node, несмотря на то, что Node.js является однопоточным? Наблюдаемые расщепления загрузки процессора составляют 60% / 40% и 50% / 50%
. На самом ли деле используются оба ядра процессора? Или просто переключаться между ними очень быстро все время, но при этом использовать только одно ядро одновременно? Другими словами, такой сценарий приведет к тому, что система задохнется, когда рабочая нагрузка ЦП превысит 1 ядро, но меньше, чем 2 ядер.
В принципе, я хотел бы знать, будет ли достаточно одноядерной системы для этого нагрузка. Спасибо!