С top легко узнать, сколько ЦП использует каждая работа. Тем не менее, я хочу найти работу, которая приводит к высокой загрузке процессора. Есть ли способ узнать, какие задания заблокированы при вводе-выводе?
top
Процессы, заблокированные в IO, отмечены как D в столбце состояния (S столбец вверху).
D
S
Чтобы быть более точным, используйте эту команду, чтобы легко узнать, какие процессы "съедают" ваши циклы ЦП:
while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done
Этот URL может быть полезен: Проблема с Linux Wait IO
iotop и latencytop могут быть полезны. Ни один из них не дает точного «времени ожидания ЦП, вызванного процессом» - я не уверен, что это даже имеет смысл, потому что ЦП может и действительно уходит на обслуживание других процессов в ожидании ввода-вывода - но эти два инструмента дают обзор ( соответственно) системный трафик ввода-вывода и задержки планирования.
Сделайте верх, затем сдвиньте F, затем выберите m или n, чтобы отсортировать список процессов по используемому времени процессора.