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?
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?
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.
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 como iotop -atku systemd-network | grep kubectl
también puede ayudar
Para 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}}'"
Wed Aug 29 13:00:46 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:47 CLT 2012
Wed Aug 29 13:00:48 CLT 2012
Wed Aug 29 13:00:49 CLT 2012
Wed Aug 29 13:00:50 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:51 CLT 2012
Wed Aug 29 13:00:52 CLT 2012
Wed Aug 29 13:00:53 CLT 2012
Wed Aug 29 13:00:55 CLT 2012
Wed Aug 29 13:00:56 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:57 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:58 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:00:59 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:00 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:01 CLT 2012
root 302 0.0 0.0 0 0 ? D May28 3:07 \_ [kdmflush]
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
Wed Aug 29 13:01:02 CLT 2012
Wed Aug 29 13:01:03 CLT 2012
root 321 0.0 0.0 0 0 ? D May28 4:25 \_ [jbd2/dm-0-8]
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
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.
ATOP - mybox 2014/09/08 15:26:00 ------ 10s elapsed
PRC | sys 0.33s | user 1.08s | | #proc 161 | #zombie 0 | clones 31 | | #exit 16 |
CPU | sys 4% | user 11% | irq 0% | idle 306% | wait 79% | | steal 1% | guest 0% |
cpu | sys 2% | user 8% | irq 0% | idle 11% | cpu000 w 78% | | steal 0% | guest 0% |
cpu | sys 1% | user 1% | irq 0% | idle 98% | cpu001 w 0% | | steal 0% | guest 0% |
cpu | sys 1% | user 1% | irq 0% | idle 99% | cpu003 w 0% | | steal 0% | guest 0% |
cpu | sys 0% | user 1% | irq 0% | idle 99% | cpu002 w 0% | | steal 0% | guest 0% |
CPL | avg1 2.09 | avg5 2.09 | avg15 2.09 | | csw 54184 | intr 33581 | | numcpu 4 |
MEM | tot 8.0G | free 81.9M | cache 2.9G | dirty 0.8M | buff 174.7M | slab 305.0M | | |
SWP | tot 2.0G | free 2.0G | | | | | vmcom 8.4G | vmlim 6.0G |
LVM | Group00-root | busy 85% | read 0 | write 30658 | KiB/w 4 | MBr/s 0.00 | MBw/s 11.98 | avio 0.28 ms |
DSK | xvdb | busy 85% | read 0 | write 23706 | KiB/w 5 | MBr/s 0.00 | MBw/s 11.97 | avio 0.36 ms |
NET | transport | tcpi 2705 | tcpo 2008 | udpi 36 | udpo 43 | tcpao 14 | tcppo 45 | tcprs 1 |
NET | network | ipi 2788 | ipo 2072 | ipfrw 0 | deliv 2768 | | icmpi 7 | icmpo 20 |
NET | eth0 ---- | pcki 2344 | pcko 1623 | si 1455 Kbps | so 781 Kbps | erri 0 | erro 0 | drpo 0 |
NET | lo ---- | pcki 423 | pcko 423 | si 88 Kbps | so 88 Kbps | erri 0 | erro 0 | drpo 0 |
NET | eth1 ---- | pcki 22 | pcko 26 | si 3 Kbps | so 5 Kbps | erri 0 | erro 0 | drpo 0 |
PID RDDSK WRDSK WCANCL DSK CMD 1/1
9862 0K 53124K 0K 98% java
358 0K 636K 0K 1% jbd2/dm-0-8
13893 0K 192K 72K 0% java
1699 0K 60K 0K 0% syslogd
4668 0K 24K 0K 0% zabbix_agentd
Esto muestra claramente que Java pid 9862 es el culpable.
TL; DR
Si puede usar iotop
, hágalo. De lo contrario, esto podría ayudar.
Use top
, luego use estos atajos:
d 1 = set refresh time from 3 to 1 second
1 = show stats for each cpu, not cumulated
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
.
x = highlight current sort column
< and > = change sort column
R = reverse sort order
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.
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.
iotop con la bandera -a:
-a, --accumulated show accumulated I/O instead of bandwidth