
Hoy me he dado cuenta de que el LED HDD de mi computadora de escritorio parpadea aunque no hay procesos escribiendo o leyendo el disco (SSD).
Abrí una terminal, ejecuté htop
y ordené todos los procesos por IO_RATE
. Puedo ver claramente que ninguno de los procesos estaba escribiendo o leyendo el disco, aunque el LED HDD de mi computadora aún parpadeaba de 1 a 2 veces por segundo. ¿Por qué podría estar pasando eso?
Respuesta1
Hay muchas razones por las que esto podría suceder. Probablemente lo más probable es que la escritura en Linux suele ocurrir como una escritura diferida (donde las páginas se almacenan en el caché de páginas y luego se descargan en el disco), lo que puede ocurrir un período de tiempo indefinido después de un write()
, mientras que los contadores de E/S generalmente miden Rendimiento inmediato de escritura/lectura.
Otra es que estos contadores realmente solo saben lo que Linux pretende hacer (y dependiendo del contador, eso excluye incluso cosas como escritura regresiva y decisiones del programador de E/S), no su disco. Muchos discos realizan de forma independiente operaciones que el sistema operativo no ve. Un ejemplo particularmente notable (no es su caso, pero aún así) son los discos SMR, donde incluso después de que el sistema operativo haya terminado de escribir datos, el disco seguirá funcionando después del hecho para mover datos a las tejas desde un almacenamiento intermedio más rápido.
En general, la medición de E/S en la capa del sistema operativo tiende a ser inexacta y los contadores utilizados htop
ni siquiera son lo último en tecnología allí. Para acercarse más, considere usar cgroup v2 io.stat
, que tiene más granularidad y visibilidad de los informes.