GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo saber qué proceso está usando swap?

Mejorando el comando cyberciti.biz para mostrar una respuesta más concisa:

(echo "COMM PID SWAP"; for file in /proc/*/status ; do awk '/^Pid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | grep -wv "0 kB" | sort -k 3 -n -r) | column -t

Un ejemplo de salida:

COMM             PID    SWAP  
dockerd          662    2736  kB
skypeforlinux    26865  1320  kB
NetworkManager   303    1112  kB
slim             392    1028  kB
redis-server     350    204   kB

Desde aquí:

[a] /proc/meminfo - Este archivo informa estadísticas sobre el uso de la memoria en el sistema. Free lo utiliza para informar la cantidad de memoria libre y utilizada (tanto física como de intercambio) en el sistema, así como la memoria compartida y los búferes utilizados por el núcleo. También puede usar vmstat y otras herramientas gratuitas para encontrar la misma información.

[b]/proc/${PID}/smaps, /proc/${PID}/status y /proc/${PID}/stat :use estos archivos para encontrar información sobre la memoria, las páginas y el intercambio utilizado por cada proceso usando su PID.

[c] smeme - Este comando (secuencia de comandos de python) informa el uso de la memoria con la memoria compartida dividida proporcionalmente.

También puede consultar Descubra qué está usando su intercambio

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done
echo "Overall swap used: $OVERALL"

Linux
  1. ¿Cómo saber qué distribución de Linux está utilizando?

  2. ¿Cómo saber si estoy arrancando usando Uefi?

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

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

  5. ¿Cómo puedo saber la ruta absoluta de un proceso en ejecución?

Cómo extender el espacio de intercambio usando el archivo de intercambio en Linux

Cómo mostrar la información del proceso usando Procs en Linux

¿Cómo saber qué programa está usando Internet y cuánto?

Si conozco el número PID de un proceso, ¿cómo puedo obtener su nombre?

¿Cómo puedo saber si netcat y dd están funcionando?

¿Cómo puedo ver la salida de dmesg a medida que cambia?