Традиционным способом зарегистрироваться и отследить пользовательское процессорное время является учет процесса. На 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
.
Нет, Вы не можете. Необходимо также проверить состояние SMART диска или с дисковой утилитой гнома или с smartctl
от smartmontools пакета. Если это - только несколько поврежденных секторов, md должен был попытаться переписать их, которые должны были инициировать диск автоматически повторно отобразить их на запасной пул. Если у Вас есть достаточно поврежденных секторов, что запасной пул закончился, то необходимо сразу заменить диск.