Является сумма всего PIDs “utime” общей системой utime?

В сценарии:

echo "${1//$/\\$}"

Это - замена простой строки, встраивают в оболочку. Синтаксис ${[VARIABLE_NAME]//[PATTERN]/[REPLACEMENT]} для глобальной замены литеральной строки.

Не уверенный, почему Вы хотели бы сделать это. Сценарий на самом деле просто сообщает о строке, которую Вы отправили в него; \$sad\$test оценивает к точно той же строке как '$sad$test', кроме последнего использует одинарные кавычки для выхода $.

8
13.04.2017, 15:22
1 ответ

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

Выполненный lastcomm для получения списка всех команд, выполняемых любым пользователем и время, проведенное в каждом (округленный к ~10ms для недолгих процессов, ожидайте видеть много из 0.00). Выполненный sa отобразить различные суммы и статистику. В частности, sa -m отображает общие количества в расчете на пользователя. Статистика, накопленная sa выполненный от последнего вращения бухгалтерских журналов (обычно расположенный в /var/log/account/).

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

В /proc/$pid/stat, пользовательское время является временем, проведенным, делая вычисление, в противоположность системному времени, проведенному, делая ввод-вывод. Какой рассчитать зависит от того, что Вы хотите сделать с информацией.

Подсчет всего PIDs является правильным. Я не знаю то, что родительский PID имеет отношение к этому.

На системной стороне, Вашем описании /proc/uptime кажется неправильным. Википедия имеет его правильный, как я пишу. Первое поле является реальным временем, истекшим начиная с загруженной системы минус любое время, проведенное приостановленный или спящий режим. Второе поле является накопленным временем, проведенным в неактивной задаче на всех центральных процессорах. Я не уверен, что это действительно означает; это - конечно, не общее время простоя на моей машине. В ядре значение суммировано в uptime_proc_show от переменных, обновленных в account_idle_time.

3
27.01.2020, 20:13
  • 1
    Что относительно очень длинных рабочих процессов? Делает sa ожидайте процесса для выхода прежде, чем сообщить, что это - процессорное время? –  Stefano Palazzo 25.02.2012, 13:48
  • 2
    @StefanoPalazzo Да, бухгалтерские данные записаны, когда процесс умирает. Это также означает, что Вы не получаете данных для процессов, которые бежали за системным катастрофическим отказом, насколько я знаю. –  Gilles 'SO- stop being evil' 25.02.2012, 22:09
  • 3
    Это - проблема - это означает, что я не могу использовать его, поскольку у нас будет много продолжительных процессов. –  Stefano Palazzo 26.02.2012, 15:47

Теги

Похожие вопросы