большинство ps
s теперь включают древовидную опцию или очень точно связанную с именем утилиту, ptree
.
Поскольку моя существующая система работы не имеет B-дерева, я в настоящее время использую
ps fauw
Я думаю, что у меня также был a
ps taux (t making more sense than f)
Наконец некоторый PS имеет опции также включать потоки программ в представление.
В то время как это не автоматическое решение, Вы (и I) пожелали бы, мой опыт состоит в том, что там появляется список 'вероятных подозреваемых' в деревьях процесса и просто сканирование дерева, можно часто предполагать, где проблема.
IHTH
GNU xargs
имеет a -P
команда для этого.
find . ... -print0 | xargs -r0P4 -n10 some-command
Дойдет 4 some-command
s за один раз максимум с 10 файлами как аргумент.
На самом деле команды как find
и grep
почти всегда IO-bound: диск является узким местом, не ЦП. В таких случаях, если Вы выполняете несколько экземпляров параллельно, они будут конкурировать за пропускную способность средств ввода-вывода и кэш, и таким образом, они будут медленнее.
С командой, которая более интенсивна ЦП, или в редких случаях (например, очень быстрый RAID-1, который не в других отношениях занят вместе с медленным ЦП), можно использовать инструменты, такие как параллель GNU или -P
опция последних версий GNU xargs.
Предполагая, что имена файлов не содержат новые строки, следующие команды вызывают cpu_intensive_command
на каждом файле в свою очередь, с двумя параллельными потоками:
find -type f | xargs -I {} -P 2 cpu_intensive_command {}
find -type f | parallel -X --number-of-cpus=2 cpu_intensive_command {}
Альтернативная стратегия состоит в том, чтобы разделить работу на две части, которые Вы оцениваете, приблизительно равны. Это не требует никаких необычных инструментов, но не балансирует задания между процессорами.
cpu_intensive_command [a-m]* &
cpu_intensive_command [!a-m]*
wait
Обход через учебное руководство Параллели GNU: http://www.gnu.org/software/parallel/parallel_tutorial.html и смотрит вводные видео: https://www.youtube.com/playlist? list=PL284C9FF2488BC6D1