2013-08-07 2 views
7

У меня есть приложение, выполняющее длительно исполняемые процессы. Чтобы сделать это быстрее, я делаю простое очертание данных и хочу запускать их параллельно, просто с помощью .fork() 2 экземпляра того же приложения.Node.js child_process.fork() для запуска на разных ядрах процессора

У меня есть машина с 2 ядрами и вы хотите убедиться, что используются 2 ядра и первый экземпляр работает на первом ядре, второй на втором ядре.

Я знаю о модуле cluster, но в данном случае он не имеет значения, так как мне не нужны HTTP-сервисы и балансировка нагрузки между ними. Просто рабочие (значит, им не нужно общаться друг с другом, отправлять сообщения или что-то еще - они просто выполняют HTTP-запросы и хранят данные в базе данных).

Возможно ли вообще контролировать, какой процессорный ядро ​​будет выполнять процесс node.js? Как отслеживать это на Mac/Linux?

+1

Вы можете проверить эту тему: http://stackoverflow.com/questions/663958/how-to-control -which-core-a-process-running-on – moka

+1

Я не думаю, что вы можете запрограммировать поток для запуска ядра процессора. Это помешает ОС, поскольку он не может переключиться на контекст и, следовательно, многозадачный. Такие решения лучше всего оставить ОС. – user568109

+0

http://stackoverflow.com/a/8685968/941764 – jgillich

ответ

0

Вы хотите этого, что определенная часть кластера API:

cluster.setupMaster([settings]) 

https://nodejs.org/api/cluster.html#cluster_cluster_setupmaster_settings

Я также написал модуль, чтобы сделать это, и их несколько:

https://www.npmjs.com/package/poolio

мой модуль работает хорошо, но API не так прост, поэтому я бы рекомендовал использовать основной модуль

Смежные вопросы