Установите сходство процессов для большого числа процессов - PullRequest
1 голос
/ 15 января 2020

Я бегу taskset на большом количестве пид (500+). Общее время составляет 30 с +. Есть ли быстрый способ установить множество пидов на один процессор? Это не сильно повышает производительность для параллельного запуска процессов набора задач. [1] Спасибо!

[1] Я пробовал как фоновый режим через &, так и распараллеливание через gnu parallel

1 Ответ

2 голосов
/ 16 января 2020

Запуск taskset на одном пиде занимает 2 мс на моем компьютере. Издержки GNU Parallel составляют 2-10 мс, что замедляет их запуск. В моей системе я могу запустить 500 наборов задач за 5 секунд:

seq 500 | time parallel taskset -p {} $$

(Очевидно, вы захотите изменить ввод на PID, а не на маски, а шаблон команды на PID).

Поэтому я озадачен, если вашей системе требуется> 30 секунд, чтобы сделать то же самое.

Если 5 секунд слишком длинны, xargs имеет меньше функций безопасности, но быстрее:

seq 500 | time xargs -P4 -n1 -I{} taskset -p {} $$

Если это все еще слишком медленно, вы пытаетесь создать свою собственную C -программу.

...