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