предоставьте больше чем одному процессору taskset

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

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

Команда, которую я использую, похожа:

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

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

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

2
задан 7 October 2014 в 04:31

1 ответ

Я нашел ответ самостоятельно: это просто добавляет -a опция, которая делает , как упомянуто в справке (taskset -h)

, "воздействуют на все задачи (потоки) для данного изодромного с предварением

, Таким образом, рабочая команда

taskset -cpa 4-7 $(pgrep -n java) 

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

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

3
ответ дан 4 August 2019 в 23:15

Другие вопросы по тегам:

Похожие вопросы: