Me gustaría hacer un monitoreo general de disco io en un servidor Linux Debian. ¿Cuáles son las herramientas que debo saber sobre ese disco de monitor io para poder ver si el rendimiento de un disco está al máximo o aumenta en cierto momento durante el día?
Para las tendencias de E/S de disco hay algunas opciones. Mi favorito personal es el comando sar
de sysstat
. Por defecto, da una salida como esta:
09:25:01 AM CPU %user %Nice %system %iowait %steal %idle
09:35:01 AM all 0.11 0.00 0.01 0.00 0.00 99.88
09:45:01 AM all 0.12 0.00 0.01 0.00 0.00 99.86
09:55:01 AM all 0.09 0.00 0.01 0.00 0.00 99.90
10:05:01 AM all 0.10 0.00 0.01 0.02 0.01 99.86
Average: all 0.19 0.00 0.02 0.00 0.01 99.78
Los %iowait
es el tiempo dedicado a esperar en E/S. Con el paquete Debian, debe habilitar el recopilador de estadísticas a través de /etc/default/sysstat
archivo de configuración después de la instalación del paquete.
Para ver la utilización actual desglosada por dispositivo, puede usar el comando iostat
, también desde el paquete sysstat:
$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode) 11/08/2012 _x86_64_ (4 CPU)
avg-cpu: %user %Nice %system %iowait %steal %idle
0.84 0.00 0.08 1.22 0.07 97.80
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
xvda 0.09 1.02 2.58 0.49 112.79 12.11 40.74 0.15 48.56 3.88 1.19
xvdb 1.39 0.43 4.03 1.82 43.33 18.43 10.56 0.66 112.73 1.93 1.13
Algunas otras opciones que pueden mostrar el uso del disco en los gráficos de tendencias son munin y cacti .
Echa un vistazo a iotop.
O iodump, si eso es más por tu forma de pensar.
Nota: Esto requiere al menos kernel 2.6.2 para funcionar.
Me gusta dstat
. Puede mostrar totales y estadísticas por disco e incluso dispositivos md (RAID), también puede usar colores para una mejor visión general:
$ dstat -tdD total,sda,sdb,sdc,md1 60
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
time | read writ: read writ: read writ: read writ: read writ
08-11 22:08:17|3549k 277k: 144k 28k: 851k 62k: 852k 60k: 25k 82k
08-11 22:09:17| 60k 258k:1775B 15k: 13k 63k: 15k 60k: 68B 74k
08-11 22:10:17| 176k 499k: 0 14k: 41k 122k: 41k 125k: 273B 157k
08-11 22:11:17| 42k 230k: 0 14k:9830B 54k: 14k 51k: 0 70k
08-11 22:11:52| 28k 132k: 0 5032B:5266B 33k:9479B 28k: 0 37k
-t
para marcas de tiempo-d
para estadísticas de disco-D
para especificar los dispositivos exactos para informar60
para promediar más de 60 segundos. La pantalla se actualiza cada segundo, pero solo una vez cada 60 segundos se iniciará una nueva línea.
no se usa en este ejemplo, pero -c
puede informar wait IO porcentaje, que en la mayoría de los casos está relacionado con la CPU esperando datos de los discos.
Está disponible para la mayoría de las distribuciones de Linux, pero a veces debe instalarse desde repositorios.
Solo desde archivos en su computadora (suponiendo un núcleo reciente) puede preguntar /sys/block/sda/stat
o /proc/diskstats
. Sin embargo, necesitará algunas traducciones. Pero es bueno para un cheque rápido y sucio.
Otra opción es usar: Sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
Este programa le dirá cuánto ha escrito y leído un proceso en el disco desde que se inició iotop.
El monitoreo de Disk Io se puede hacer mediante múltiples herramientas como las siguientes.
Además, algunos conceptos importantes del sistema operativo son muy necesarios para comprenderlos ... lea el Linux IO tutorial completo
Otra gran herramienta para una descripción rápida de dónde proviene la carga es atop
Puede mostrarle una descripción general de todos los recursos (CPU, memoria/intercambio, red y E/S de disco) o puede profundizar en un solo recurso y ordenar los procesos según cuánto consuman.
¿Por qué no probar nmon . Hace discos y red con procesos. Originalmente para AIX, pero se ha portado a Linux desde hace algunos años.