%20de%20las%20operaciones%20de%20escritura%20en%20disco%20en%20Linux%20(RHEL6.1)%3F.png)
Tengo una máquina virtual con una aplicación basada en PHP (en Apache), cuando observo la actividad del disco, hay una escritura constante de 170 kbps cuando Apache se está ejecutando.
Cuando aplicamos carga, el rendimiento del servidor depende de la CPU, pero esto parece estar directamente relacionado con saltos de E/S de escritura en disco de 20 a 30 veces. El gráfico de uso de CPU refleja el gráfico de acceso al disco de escritura.
¿Algunas ideas?
Respuesta1
Dos recomendaciones:
iotopes un programa útil que muestra el uso de E/S en tiempo real en un formato como el top
comando. Esto debería ayudarle a identificar el script/binario que realiza todas las E/S. Creo que es posible que esto ya esté instalado en kernels más nuevos, pero yum puede proporcionarlo en RHEL si no lo ve.
lsof
también es útil para solucionar problemas de E/S; enumera los archivos abiertos.
ACTUALIZAR
Si hay actividad "constante" en el disco, entonces iotop
debería indicarle qué procesos son los culpables. Con respecto al historial de transacciones de E/S: no creo que el historial de E/S esté registrado en ninguna parte de la mayoría de las distribuciones de Linux, pero puedes agregar un trabajo cron.
Como root, abre crontab crontab -e
y agrega estas dos líneas:
* * * * * /bin/date >> /var/log/iotop; /usr/local/bin/iotop -bot --iter=3 -q >> /var/log/iotop
* * * * * /bin/date >> /var/log/lsof; /usr/bin/lsof -b -w >> /var/log/lsof
Eso se volca iotop
y lsof
se genera en un registro cada minuto. Agregue un script logrotate para cada uno para evitar que los archivos ocupen todo su espacio, por ejemplo:
someuser@myhost:~> cat /etc/logrotate.d/lsof
/var/log/lsof {
rotate 3
weekly
compress
missingok
notifempty
}
Respuesta2
Parece que una tarea en segundo plano no relacionada estaba eliminando el contenido del directorio /tmp donde se estaba precompilando php. Como resultado, el proceso de precompilación de PHP comenzó nuevamente, lo que generó una actividad constante en el disco.