Почему светодиод жесткого диска на моем настольном компьютере мигает, когда системный монитор не показывает никакой активности ввода-вывода на диске?

Почему светодиод жесткого диска на моем настольном компьютере мигает, когда системный монитор не показывает никакой активности ввода-вывода на диске?

Сегодня я заметил, что светодиод жесткого диска на моем настольном компьютере мигает, хотя нет никаких процессов записи или чтения на диск (SSD).

Я открыл терминал, запустил htopи отсортировал все процессы по IO_RATE. Я мог ясно видеть, что ни один из процессов не писал и не читал диск, хотя светодиод HDD моего компьютера все еще мигал 1-2 раза в секунду. Почему это может происходить?

решение1

Существует множество причин, по которым это может произойти. Вероятно, наиболее вероятной является то, что запись в Linux обычно происходит как обратная запись (когда страницы буферизуются в кэше страниц, а затем сбрасываются на диск), что может происходить через неопределенное количество времени после write(), тогда как счетчики ввода-вывода обычно измеряют немедленную пропускную способность записи/чтения.

Другое заключается в том, что эти счетчики на самом деле знают только то, что Linux намеревается сделать (и в зависимости от счетчика, который исключает даже такие вещи, как обратная запись и решения планировщика ввода-вывода), а не ваш диск. Многие диски независимо выполняют операции, которые не видны операционной системе. Особенно заметным примером — не ваш случай, но все же — являются диски SMR, где даже после того, как операционная система давно закончила запись данных, диск все равно будет работать после этого, чтобы переместить данные на шинглы из более быстрого промежуточного хранилища.

В целом, измерение ввода-вывода на уровне ОС имеет тенденцию быть неточным, а счетчики, используемые htopтам, даже не являются последним словом техники. Чтобы приблизиться, рассмотрите возможность использования cgroup v2 io.stat, которая имеет большую детализацию и видимость отчетов.

Связанный контент