GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo determinar qué proceso está escribiendo en el disco en Linux

También es posible en Linux obtener estadísticas de E/S por proceso, para que pueda ver exactamente quién está leyendo y escribiendo mucho, usando un programa llamado iotop. iotop debe iniciarse con el usuario raíz. Puede usar iotop, por ejemplo, para saber qué tan rápido puede leer y escribir su disco duro, luego presione la tecla q para salir. Lea la sección del manual en iotop para obtener más información sobre sus accesos directos, por ejemplo, para ordenar columnas.

Para ver qué proceso está escribiendo en el disco, podemos usar el comando "iotop" para obtener esa información

# iotop

Muestra una salida como el siguiente ejemplo:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 88.95 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 88.95 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>    COMMAND
27236 be/4 root 0.00 B/s  88.95 M/s  0.00 % 87.91% dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc
25600 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % less -s
    1 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % systemd --switched-root --system --deserialize 22
    2 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kthreadd]
    3 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksoftirqd/0]
    6 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kworker/u30:0]
    7 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_sched]
    8 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_bh]
    9 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuos/0]
   10 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuob/0]
   11 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [migration/0]
   12 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [watchdog/0]
   13 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khelper]
   14 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kdevtmpfs]
   15 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [netns]
   16 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [perf]
   17 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenwatch]
   18 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenbus]
   20 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khungtaskd]
   21 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [writeback]
   22 be/5 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksmd]
   23 be/7 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khugepaged]
   24 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [crypto]
   25 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kintegrityd]
   26 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [bioset]
   27 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kblockd]
   28 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [md]
   29 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [devfreq_wq]
   31 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kswapd0]
   32 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [fsnotify_mark]
 1058 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % cupsd -f

De las columnas presentadas aquí, nos pueden interesar las siguientes:

  • TID :Esta columna proporciona el PID del proceso que realiza las solicitudes de E/S. Esto se puede usar para investigar o terminar el programa.
  • LECTURA DE DISCO :esta columna ilustra el número de bytes leídos por segundo por el proceso enumerado.
  • ESCRITURA EN DISCO :esta columna detalla la cantidad de bytes escritos por segundo por el proceso enumerado.
  • IO :esta columna muestra el porcentaje de tiempo que el proceso enumerado pasó emitiendo solicitudes de E/S.
  • MANDO :esta columna muestra el nombre del proceso que maneja la E/S. Si se trata de un proceso maestro, también podría incluir modificadores de línea de comandos.

En el ejemplo anterior, ejecutamos en otra sesión de ssh una prueba dd (dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc) para ver la acción W/R que va al disco .

Si desea ver solo los procesos actuales que se escriben en el disco, presione la tecla "o" y obtendrá un resultado como:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 86.90 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 86.90 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>     COMMAND
27239 be/4 root 0.00 B/s  86.90 M/s  0.00 % 89.17 % dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc

Las siguientes son algunas de las opciones más comunes que podemos usar:

  • Golpea la izquierda y teclas de flecha derecha para cambiar la clasificación.
  • Presiona r para invertir el orden de clasificación.
  • Golpear o solo para ver los procesos o subprocesos que realmente realizan operaciones de E/S, en lugar de mostrar todos los procesos o subprocesos.
  • Presiona p solo mostrar procesos. Normalmente, iotop muestra todos los hilos.
  • Golpea a muestra la E/S acumulada en lugar del ancho de banda. En este modo, iotop muestra la cantidad de procesos de E/S realizados desde que se inició iotop.
  • Presiona i para cambiar la prioridad de un hilo o hilo(s) de proceso, es decir, ionice.
  • Pulsa q para salir de iotop.

Consulte las páginas man para obtener más información.

# man iotop


Linux
  1. Cómo matar un proceso zombie en Linux

  2. ¿Cómo puedo saber en Linux qué proceso envió una señal a mi proceso?

  3. ¿Cómo saber qué proceso está usando un archivo en Linux?

  4. ¿Cómo puedo determinar qué proceso tiene un archivo abierto en Linux?

  5. ¿Determinar en qué grupo(s) se encuentra un proceso en ejecución?

Cómo crear particiones en Linux

Cómo matar un proceso en Linux

Cómo enumerar particiones de disco en Linux

Cómo MATAR un proceso en Linux

Cómo cifrar la partición en Linux

¿Cómo determinar qué está utilizando la mayor cantidad de espacio en disco en un servidor Linux?