¿Por qué las cifras de /proc/diskstats de repente son increíblemente bajas?

¿Por qué las cifras de /proc/diskstats de repente son increíblemente bajas?

Tengo un servidor Debian jessie con dos SSD Intel DC S3610, en RAID-10. Está razonablemente ocupado para IO y durante las últimas semanas he estado graficando los IOPS:

Gráfico de transacciones de E/S de disco para sda

Como puede ver, la mayor parte del tiempo estuvo felizmente realizando alrededor de 1.000 operaciones de lectura promedio, alcanzando un máximo de aproximadamente 5.5k, hasta que a la medianoche UTC del viernes eso parece detenerse abruptamente y las operaciones de lectura disminuyen a casi nada.

De hecho, solo me di cuenta de esto de manera retroactiva porque la cuestión es que el servidor todavía funciona como debería. Es decir, creo que lo que está roto es el monitoreo, no la cantidad de IOPS que puede realizar la configuración. Si el IOPS real hubiera caído al nivel mostrado, lo sabría porque todo lo demás se rompería notablemente.

Tras una investigación más profunda, los gráficos de kilobytes leídos/escritos también se dividen en el mismo punto. Sin embargo, los gráficos de latencia de solicitudes están bien.

En un intento de descartar la solución gráfica particular que se utiliza aquí (cactus y SNMP), eché un vistazo aiostato. Su resultado coincide con lo que se muestra en los gráficos.

Hasta donde tengo entendidoiostatoobtiene su información de/proc/diskstats. De acuerdo ahttps://www.kernel.org/doc/Documentation/iostats.txthabrá el nombre del dispositivo mayor, menor y luego un conjunto de campos, de los cuales el primero es el número de lecturas completadas. Entonces:

$ for i in {1..10}; do awk '/sda / { print $4 }' /proc/diskstats; sleep 1; done
3752035479
3752035484
3752035484
3752035486
3752035486
3752035519
3752035594
3752035631
3752036016
3752036374

Simplemente no es creíble que se haya completado una cantidad tan baja de lecturas en ese lapso de 10 segundos.

Pero si/proc/diskstatsme está mintiendo, ¿cuál podría ser el problema y cómo puedo solucionarlo?

También es de interés el hecho de que todo lo que cambió, cambió exactamente a medianoche, lo cual es más bien una coincidencia.

El servidor tiene bastantes dispositivos de bloqueo. 187 de ellos son LVM LV y otros 18 son particiones y dispositivos md habituales.

He estado agregando más LV regularmente, por lo que es posible que el jueves haya alcanzado algún tipo de límite, aunque no agregué ninguno cerca de la medianoche, por lo que sigue siendo extraño que lo que salió mal lo haya hecho a medianoche.

Yo sé eso/proc/diskstatspuede desbordarse, pero cuando lo hace, las cifras suelen ser erróneamente enormes.

Si observamos el gráfico un poco más detenidamente, podemos ver que parece más puntiagudo el jueves que antes en la semana (y semanas) anterior. Si nos acercamos a los resultados solo para ese período, vemos:

Gráfico de IOPS, sda, centrándose en el jueves

Esas brechas de lecturas cero o cercanas a cero son anormales y no creo que reflejen la realidad. ¿Quizás la cantidad de solicitudes ha excedido algún umbral a medida que agregué más carga, de modo que comenzó a manifestarse el jueves y el viernes la mayoría de las lecturas ahora son cero?

¿Alguien tiene alguna idea sobre lo que está pasando aquí?

Versión del kernel 3.16.7-ckt11-1+deb8u3.

información relacionada