1

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

Как я могу использовать numactl чтобы заставить процесс работать только в одном потоке? В качестве альтернативы, есть ли еще более простая встроенная утилита, которая может это сделать?

1 ответ1

3
numactl --physcpubind=+1 /path/to/your/executable

это должно запустить ваш процесс на втором ядре / процессоре, назначенном вашему чипсету (индекс 1). см. раздел примеров на странице руководства для получения дополнительной информации:http://linux.die.net/man/8/numactl

Изменить: Я должен отметить, что это означает, что программа будет работать не более одного потока одновременно, но это не значит, что весь процесс будет состоять только из одного потока. если программа написана для порождения нового потока, она это сделает, но она будет выполняться на том же ядре / процессоре, что и остальная часть процесса. тонкое различие, но потенциально важное, тем не менее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .