Обеспечить более одного процессора с набором задач

Я использую набор задач для назначения процессорных ядер 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.

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

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