2014-10-06 3 views
2

Я использую набор задач для назначения CPU ядрам 4-7 для процесса Java, который обычно использует процессор ~ 200-400%. Ядра 4-7 были изолированы при загрузке, поэтому на них должен запускаться только процесс java.предоставляют более одного процессора с набором задач

В конце концов набор задач, по-видимому, блокирует порожденный процесс java для одного из четырех ядер, а не назначает его всем ядрам.

Команда я использую в моем сценарии выглядит следующим образом:

taskset -c 4,5,6,7 java [...] -jar [...] 

Использование taskset -c 4,5,6,7 stress -c 4 ведет себя так же и использует только одно ядро.

Как я могу присвоить все четыре ядра процессу java?

ответ

1

После тихо некоторое времени я нашел ответ на моем собственном: Это просто добавить -a вариант, который делает , как указан в справке (taskset -h)

«работает на всех задачи (потоки) для данный PID

Так работает команда taskset -cpa 4-7 'pgrep -n java'

(далее «должны быть заменены ` для правильной работы!)

pgrep используется здесь, чтобы получить PID последнего запущенного процесса Java.

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

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