Как я могу эффективно измерить среднее использование ЦП для группы процессов (Bash Coprocs + их дети) на Linux?Linux

Ответить
Anonymous
 Как я могу эффективно измерить среднее использование ЦП для группы процессов (Bash Coprocs + их дети) на Linux?

Сообщение Anonymous »

фон : я написал функцию Bash, которая требовала Forkrun, которая параллелизирует код для вас так же, как это делает параллельно или xargs -p . Это быстрее, чем параллельно , и аналогично скорости, но имеет больше вариантов, чем xargs -p . forkrun работает, порождая ряд постоянных копрок, каждый из которых запускает бесконечный цикл (до тех пор, пока не будет выполнено какое -то конечное условие), которые будут считывать данные о строках (переданные на stdin) и запустить эти строки через все, что вы параллелизируют. Это должно включать в себя использование процессора «накладных расходов», использующего свою петлю и общее кумулятивное использование ЦП, которое он работает для вас (что может или не может быть другим пидом, и может изменить на каждой петле итерации). Итак, мне нужно полное использование процессора от всех детей Coproc Pid + их детей (и внуков и правнуков, и ...).
конечная цель : Я хочу иметь Forkrun динамически определить, сколько Coprocs для появления на основе условий выполнения. Часть моей стратегии для этого включает в себя выяснение + отслеживание того, сколько времени процессора (в среднем) занимает каждый из этих ковров. Текущая реализация для «динамического нереста Coproc» делает это, рассматривая общую системную нагрузку (путем опроса/proc/stat ) до и после того, как некоторые копроски появляются, но это очень шумно, так как на нее влияют все остальное, что остальное, на что происходит в системе. ''
Idea
: моя первоначальная идея состояла и вытащите и суммируйте поля Utime , stime , Cutime и cstime . К сожалению, это только учитывает время процессора для ждать детей. то есть, вы разбираетесь, а затем вызовите подождать . Он не включает в себя время процессора для таких вещей, как «материал, работающий в подборных». Я потратил много усилий, чтобы убедиться, что у Forkrun практически нет зависимости - в настоящее время его единственными жесткими зависимостями являются недавняя версия Bash, монтированные Procfs и некоторые двоичные файлы для основных операций файловой системы (, mkdir ). Если внешний инструмент абсолютно требуется, то хорошо, но я на 99% уверен, что я могу вытащить эту информацию из Procfs *каким -то образом.
Заранее!

Подробнее здесь: https://stackoverflow.com/questions/794 ... ses-bash-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»