Si utilizo "top" puedo ver qué CPU está ocupada y qué proceso está usando toda mi CPU.
Si utilizo "iostat -x", puedo ver qué unidad está ocupada.
Pero, ¿cómo veo qué proceso está utilizando todo el rendimiento de la unidad?
linux
io
performance
system-administration
iostat
Matthew Crumley
fuente
fuente
Respuestas:
Está buscando
iotop
(asumiendo que tiene kernel> 2.6.20 y Python 2.5). De lo contrario, está buscando conectarse al sistema de archivos. Recomiendo el primero.fuente
iotop
parece mostrar el ancho de banda de E / S en lugar de la cantidad de IOPS consumidas por los procesos. Esto no es muy relevante. Un proceso que realiza muchas escrituras pequeñas + sincronización va a consumir más capacidad de E / S del disco que un proceso que escribe un gran lote contiguo de datos a alta velocidad.[jdb2/nvme0n1p1]
en iotop, pero tuve suerte al habilitar / proc / sys / vm / block_dump y comparar la salida con un sistema saludable / estable lxadm.com/Simple_filesystem_read/write_tracing_with_/proc/sys/… Ayudó a encontrar un contenedor de ventana acoplable que generaba continuamente solicitudes de kubectl, agotando los créditos de ráfaga de un volumen de EBS con entradas en formato/home/spinnaker/.kube/cache/discovery/.../serverresources.json
. Una vez que reduce las cosas a un nombre de usuario / proceso, algo comoiotop -atku systemd-network | grep kubectl
también puede ayudarPara saber qué procesos en el estado 'D' (esperando la respuesta del disco) se están ejecutando actualmente:
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
o
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Como puede ver en el resultado, jdb2 / dm-0-8 (proceso de diario ext4) y kdmflush bloquean constantemente su Linux.
Para obtener más detalles, esta URL podría ser útil: Problema de E / S de espera de Linux
fuente
atop también funciona bien y se instala fácilmente incluso en sistemas CentOS 5.x más antiguos que no pueden ejecutar iotop. Presione
d
para mostrar los detalles del disco,?
para obtener ayuda.Esto muestra claramente que Java pid 9862 es el culpable.
fuente
TL; DR
Si puede usar
iotop
, hágalo. De lo contrario, esto podría ayudar.Use
top
, luego use estos atajos:Esto tiene que mostrar valores
> 1.0 wa
para al menos un núcleo; si no hay diskwaits, simplemente no hay carga de E / S y no es necesario buscar más. Generalmente comienzan cargas importantes> 15.0 wa
.Elija 'S', la columna de estado del proceso. Invierta el orden de clasificación para que los procesos 'R' (en ejecución) se muestren en la parte superior. Si puede detectar procesos 'D' (esperando disco), tiene un indicador de cuál podría ser su culpable.
fuente
Para los usuarios de KDE, puede usar 'ctrl-esc' para llamar a un monitor de actividad del sistema y hay gráficos de actividades de E / S con la identificación y el nombre del proceso.
No tengo permisos para subir imágenes debido al 'estado de nuevo usuario', pero puedes ver la imagen a continuación. Tiene una columna para lectura y escritura de E / S.
fuente
¿Ha considerado
lsof
(enumerar archivos abiertos)?fuente
iotop con la bandera -a:
fuente