Подтвердить что ты не робот

Как узнать, какой процесс потребляет "wait CPU" (т.е. Заблокирован I/O)

С top легко узнать, сколько CPU использует каждая работа. Тем не менее, я хочу выследить работу, которая вызывает высокий процессор ожидания. Есть ли способ узнать, какие рабочие места заблокированы при вводе-выводе?

4b9b3361

Ответ 1

iotop и latencytop может быть полезно. Ни то, ни другое не дает точно "время ожидания процессора, вызванное процессом" - я не уверен, что это даже имеет смысл, потому что процессор может и может отключиться для обслуживания других процессов, ожидая ввода-вывода, - но эти два инструмента дают обзор ( соответственно) системный трафик ввода-вывода и задержки планирования.

Ответ 2

Процессы, заблокированные в IO, - это те, которые помечены как D в столбце состояния (верхний столбец S).

Ответ 3

Чтобы быть более точным, используйте эту команду, чтобы легко узнать, какие процессы "съедают" ваши циклы процессора:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

Этот URL-адрес может быть полезен: Linux Подождите IO Проблема

Ответ 4

Сделайте верх, затем смените F, затем выберите m или n, отсортируйте список процессов с использованием времени процессора.