linux - usage - ¿Cómo medir el uso de memoria real de una aplicación o proceso?
memory used per process linux (30)
Esta pregunta se trata here con gran detalle.
¿Cómo se mide el uso de memoria de una aplicación o proceso en Linux?
Del artículo del blog sobre la comprensión del uso de la memoria en Linux , ps
no es una herramienta precisa para este propósito.
Porque
ps
es "incorrecto"Dependiendo de cómo se mire,
ps
no informa el uso real de memoria de los procesos. Lo que realmente está haciendo es mostrar cuánta memoria real tomaría cada proceso si fuera el único proceso en ejecución . Por supuesto, una máquina Linux típica tiene varias docenas de procesos que se ejecutan en un momento dado, lo que significa que los números VSZ y RSS reportados porps
son casi definitivamente erróneos .
¿Qué pasa con el time
?
No es el time
incorporado de Bash sino el que puede encontrar con which time
, por ejemplo /usr/bin/time
Esto es lo que cubre, en un simple ls
:
$ /usr/bin/time --verbose ls
(...)
Command being timed: "ls"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 2372
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 121
Voluntary context switches: 2
Involuntary context switches: 9
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Además de las soluciones enumeradas en tus respuestas, puedes usar el comando de Linux "top"; Proporciona una vista dinámica en tiempo real del sistema en ejecución, proporciona el uso de la CPU y la memoria para todo el sistema junto con cada programa, en porcentaje:
top
Para filtrar por un programa pid:
top -p <PID>
para filtrar por un nombre de programa:
top | grep <PROCESS NAME>
"top" también proporciona algunos campos como:
VIRT - Imagen virtual (kb): la cantidad total de memoria virtual utilizada por la tarea
RES - Tamaño del residente (kb): la memoria física no intercambiada que una tarea ha utilizado; RES = CÓDIGO + DATOS.
DATOS - Tamaño de pila de datos (kb): la cantidad de memoria física dedicada a otro código que no sea ejecutable, también conocido como tamaño de ''conjunto residente de datos'' o DRS.
SHR - Tamaño de memoria compartida (kb): la cantidad de memoria compartida utilizada por una tarea. Simplemente refleja la memoria que podría compartirse potencialmente con otros procesos.
Referencia here .
Con ps
o herramientas similares, solo obtendrá la cantidad de páginas de memoria asignadas por ese proceso. Este número es correcto, pero:
no refleja la cantidad real de memoria utilizada por la aplicación, solo la cantidad de memoria reservada para ella
puede ser engañoso si las páginas se comparten, por ejemplo, por varios subprocesos o mediante el uso de bibliotecas vinculadas dinámicamente
Si realmente desea saber qué cantidad de memoria utiliza realmente su aplicación, debe ejecutarla dentro de un generador de perfiles. Por ejemplo, valgrind
puede brindarle información sobre la cantidad de memoria utilizada y, lo que es más importante, sobre las posibles fugas de memoria en su programa. La herramienta del generador de perfiles de valgrind se llama ''macizo'':
Massif es un generador de perfiles de pila. Realiza perfiles detallados del montón tomando instantáneas regulares del montón de un programa. Produce un gráfico que muestra el uso del montón a lo largo del tiempo, incluida la información sobre qué partes del programa son responsables de la mayoría de las asignaciones de memoria. El gráfico se complementa con un archivo de texto o HTML que incluye más información para determinar dónde se asigna la mayor cantidad de memoria. Massif ejecuta programas aproximadamente 20x más lento de lo normal.
Como se explica en la documentación de valgrind , debe ejecutar el programa a través de valgrind:
valgrind --tool=massif <executable> <arguments>
Massif escribe un volcado de instantáneas de uso de memoria (por ejemplo, massif.out.12345
). Estos proporcionan (1) una línea de tiempo de uso de la memoria, (2) para cada instantánea, un registro de dónde se asignó la memoria de su programa. Una gran herramienta gráfica para analizar estos archivos es massif-visualizer . Pero encontré que ms_print
, una herramienta simple basada en texto enviada con valgrind, ya es de gran ayuda.
Para encontrar fugas de memoria, use la herramienta memcheck
(predeterminada) de valgrind.
En versiones recientes de linux, use el subsistema smaps . Por ejemplo, para un proceso con un PID de 1234:
cat /proc/1234/smaps
Le dirá exactamente cuánta memoria está usando en ese momento. Más importante aún, dividirá la memoria en privada y compartida, para que pueda saber cuánta memoria está usando su instancia del programa, sin incluir la memoria compartida entre varias instancias del programa.
Es difícil decirlo con seguridad, pero aquí hay dos cosas "cercanas" que pueden ayudar.
$ ps aux
le dará tamaño virtual (VSZ)
También puede obtener estadísticas detalladas de / proc file-system yendo a /proc/$pid/status
El más importante es el VmSize, que debería estar cerca de lo que da ps aux
.
/proc/19420$ cat status Name: firefox State: S (sleeping) Tgid: 19420 Pid: 19420 PPid: 1 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 256 Groups: 4 6 20 24 25 29 30 44 46 107 109 115 124 1000 VmPeak: 222956 kB VmSize: 212520 kB VmLck: 0 kB VmHWM: 127912 kB VmRSS: 118768 kB VmData: 170180 kB VmStk: 228 kB VmExe: 28 kB VmLib: 35424 kB VmPTE: 184 kB Threads: 8 SigQ: 0/16382 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000020001000 SigCgt: 000000018000442f CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 Cpus_allowed: 03 Mems_allowed: 1 voluntary_ctxt_switches: 63422 nonvoluntary_ctxt_switches: 7171
Este es un excelente resumen de las herramientas y problemas: enlace archive.org
Lo citaré, para que más desarrolladores realmente lo lean.
Si desea analizar el uso de memoria de todo el sistema o analizar a fondo el uso de memoria de una aplicación (no solo su uso de pila), use exmap . Para el análisis de todo el sistema, encuentre los procesos con el uso efectivo más alto, ellos toman la mayor cantidad de memoria en la práctica, los procesos con el uso más escribible posible, crean la mayoría de los datos (y por lo tanto posiblemente pierden o son muy ineficaces en su uso de datos). Seleccione dicha aplicación y analice sus asignaciones en la segunda vista de lista. Vea la sección de exmap para más detalles. También use xrestop para verificar el alto uso de los recursos X, especialmente si el proceso del servidor X requiere mucha memoria. Vea la sección xrestop para más detalles.
Si desea detectar fugas, use valgrind o posiblemente kmtrace .
Si desea analizar el uso del montón (malloc, etc.) de una aplicación, ejecútelo en memprof o con kmtrace , haga un perfil de la aplicación y busque en el árbol de llamadas de funciones las mayores asignaciones. Vea sus secciones para más detalles.
Estoy usando htop
; Es un programa de consola muy bueno similar al Administrador de tareas de Windows.
No hay una manera fácil de calcular esto. Pero algunas personas han tratado de obtener algunas buenas respuestas:
No hay una sola respuesta para esto porque no puede señalar con precisión la cantidad de memoria que utiliza un proceso. La mayoría de los procesos bajo linux usan bibliotecas compartidas. Por ejemplo, supongamos que desea calcular el uso de la memoria para el proceso ''ls''. ¿Solo cuenta la memoria utilizada por el ejecutable ''ls'' (si pudiera aislarla)? ¿Qué tal libc? ¿O todas estas otras librerías que se requieren para ejecutar ''ls''?
linux-gate.so.1 => (0x00ccb000)
librt.so.1 => /lib/librt.so.1 (0x06bc7000)
libacl.so.1 => /lib/libacl.so.1 (0x00230000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00162000)
libc.so.6 => /lib/libc.so.6 (0x00b40000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00cb4000)
/lib/ld-linux.so.2 (0x00b1d000)
libattr.so.1 => /lib/libattr.so.1 (0x00229000)
libdl.so.2 => /lib/libdl.so.2 (0x00cae000)
libsepol.so.1 => /lib/libsepol.so.1 (0x0011a000)
Podría argumentar que son compartidos por otros procesos, pero ''ls'' no se puede ejecutar en el sistema sin que se carguen.
Además, si necesita saber cuánta memoria necesita un proceso para realizar la planificación de la capacidad, debe calcular cuánto utiliza cada copia adicional del proceso. Creo que / proc / PID / status podría darle suficiente información sobre el uso de la memoria una sola vez. Por otro lado, valgrind le dará un mejor perfil del uso de la memoria durante toda la vida útil del programa.
Pruebe el comando pmap :
sudo pmap -x <process pid>
Si su código está en C o C ++, es posible que pueda usar getrusage()
que le devuelve varias estadísticas sobre la memoria y el uso del tiempo de su proceso.
Sin embargo, no todas las plataformas admiten esto y devolverán 0 valores para las opciones de uso de memoria.
En su lugar, puede ver el archivo virtual creado en /proc/[pid]/statm
(donde [pid]
es reemplazado por su id de proceso. Puede obtenerlo de getpid()
).
Este archivo se verá como un archivo de texto con 7 enteros. Probablemente esté más interesado en los números primero (uso de memoria) y sexto (uso de memoria de datos) en este archivo.
Tres métodos más para probar:
-
ps aux --sort pmem
Ordena la salida por%MEM
. -
ps aux | awk ''{print $2, $4, $11}'' | sort -k2r | head -n 15
Se ordena utilizando tuberías. -
top -a
Comienza la clasificación superior por%MEM
(Extraído de here )
Use smem , que es una alternativa a ps que calcula el USS y PSS por proceso. Lo que quieres es probablemente el PSS.
USS - Tamaño de conjunto único. Esta es la cantidad de memoria no compartida única para ese proceso (considérelo como U para la memoria única ). No incluye memoria compartida. Por lo tanto, esto no reportará la cantidad de memoria que utiliza un proceso, pero es útil cuando se quiere ignorar la memoria compartida.
PSS - Tamaño de conjunto proporcional. Esto es lo que quieres. Agrega la memoria única (USS), junto con una proporción de su memoria compartida dividida por la cantidad de otros procesos que comparten esa memoria. Por lo tanto, le proporcionará una representación precisa de la cantidad de memoria física real que se está utilizando por proceso, con la memoria compartida realmente representada como compartida. Piensa que la P es para la memoria física .
Cómo se compara esto con RSS según lo informado por ps y otras utilidades:
- RSS - Tamaño del conjunto residente. Esta es la cantidad de memoria compartida más la memoria no compartida utilizada por cada proceso. Si algún proceso comparte memoria, esto reportará en exceso la cantidad de memoria realmente utilizada, porque la misma memoria compartida se contará más de una vez, apareciendo nuevamente en cada otro proceso que comparte la misma memoria. Por lo tanto, es bastante poco confiable, especialmente cuando los procesos de alta memoria tienen muchas bifurcaciones, lo cual es común en un servidor, con procesos como Apache o PHP (fastcgi / FPM).
Aviso: smem también puede (opcionalmente) generar gráficos como gráficos circulares y similares. En mi opinión, no necesitas nada de eso. Si solo desea usarlo desde la línea de comandos como podría usar ps -A v, entonces no necesita instalar la dependencia recomendada de python-matplotlib.
Valgrind es increíble si tienes tiempo para ejecutarlo. valgrind --tool=massif
es la solución correcta.
Sin embargo, estoy empezando a ejecutar ejemplos más grandes, y usar valgrind ya no es práctico. ¿Hay alguna forma de indicar el uso máximo de memoria (tamaño de página en módulo y páginas compartidas) de un programa?
En un sistema UNIX real, /usr/bin/time -v
funciona. En Linux, sin embargo, esto no funciona.
Basado en la respuesta a una question relacionada .
Puede usar SNMP para obtener la memoria y el uso de la CPU de un proceso en un dispositivo particular en la red :)
Requisitos:
- El dispositivo que ejecuta el proceso debe tener instalado y ejecutado snmp.
- snmp debe configurarse para aceptar solicitudes desde donde ejecutará el script a continuación (puede configurarse en snmpd.conf)
- debe conocer el ID de proceso (pid) del proceso que desea monitorear
Notas:
HOST-RESOURCES-MIB :: hrSWRunPerfCPU es la cantidad de centi-segundos de los recursos de CPU totales del sistema consumidos por este proceso. Tenga en cuenta que en un sistema multiprocesador, este valor puede aumentar en más de un centi-segundo en un centi-segundo del tiempo real (reloj de pared).
HOST-RESOURCES-MIB :: hrSWRunPerfMem es la cantidad total de memoria real del sistema asignada a este proceso.
**
Proceso de script de supervisión:
**
echo "IP: "
read ip
echo "specfiy pid: "
read pid
echo "interval in seconds:"
read interval
while [ 1 ]
do
date
snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfCPU.$pid
snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfMem.$pid
sleep $interval;
done
Valgrind puede mostrar información detallada pero ralentiza significativamente la aplicación de destino, y la mayoría de las veces cambia el comportamiento de la aplicación.
Exmap era algo que aún no sabía, pero parece que necesita un módulo del kernel para obtener la información, lo que puede ser un obstáculo.
Supongo que lo que todos quieren saber sobre WRT "uso de memoria" es lo siguiente ...
En Linux, la cantidad de memoria física que un solo proceso puede usar puede dividirse aproximadamente en las siguientes categorías.
Memoria anónima mapeada ma
- .p privado
- .d sucio == malloc / mmapped pila y pila asignada y memoria escrita
- .c clean == malloc / mmapped pila y memoria de pila una vez asignada, escrita, luego liberada, pero no reclamada todavía
- .s ha compartido
- .d dirty == malloc / mmaped heap podría copiarse y escribirse entre procesos (editado)
- .c clean == malloc / mmaped heap podría copiarse y escribirse entre procesos (editado)
- .p privado
Mn nombrada memoria asignada
- .p privado
- .d sucio == archivo mmapped memoria escrita privada
- .c limpio == programa asignado / texto de biblioteca asignado privado
- .s ha compartido
- .d sucio == archivo mmapped memoria escrita compartida
- .c clean == mapeado texto de la biblioteca compartido mapeado
- .p privado
Utilidad incluida en Android llamada showmap es bastante útil
virtual shared shared private private
size RSS PSS clean dirty clean dirty object
-------- -------- -------- -------- -------- -------- -------- ------------------------------
4 0 0 0 0 0 0 0:00 0 [vsyscall]
4 4 0 4 0 0 0 [vdso]
88 28 28 0 0 4 24 [stack]
12 12 12 0 0 0 12 7909 /lib/ld-2.11.1.so
12 4 4 0 0 0 4 89529 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
28 0 0 0 0 0 0 86661 /usr/lib/gconv/gconv-modules.cache
4 0 0 0 0 0 0 87660 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
4 0 0 0 0 0 0 89528 /usr/lib/locale/en_US.utf8/LC_TELEPHONE
4 0 0 0 0 0 0 89527 /usr/lib/locale/en_US.utf8/LC_ADDRESS
4 0 0 0 0 0 0 87717 /usr/lib/locale/en_US.utf8/LC_NAME
4 0 0 0 0 0 0 87873 /usr/lib/locale/en_US.utf8/LC_PAPER
4 0 0 0 0 0 0 13879 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
4 0 0 0 0 0 0 89526 /usr/lib/locale/en_US.utf8/LC_MONETARY
4 0 0 0 0 0 0 89525 /usr/lib/locale/en_US.utf8/LC_TIME
4 0 0 0 0 0 0 11378 /usr/lib/locale/en_US.utf8/LC_NUMERIC
1156 8 8 0 0 4 4 11372 /usr/lib/locale/en_US.utf8/LC_COLLATE
252 0 0 0 0 0 0 11321 /usr/lib/locale/en_US.utf8/LC_CTYPE
128 52 1 52 0 0 0 7909 /lib/ld-2.11.1.so
2316 32 11 24 0 0 8 7986 /lib/libncurses.so.5.7
2064 8 4 4 0 0 4 7947 /lib/libdl-2.11.1.so
3596 472 46 440 0 4 28 7933 /lib/libc-2.11.1.so
2084 4 0 4 0 0 0 7995 /lib/libnss_compat-2.11.1.so
2152 4 0 4 0 0 0 7993 /lib/libnsl-2.11.1.so
2092 0 0 0 0 0 0 8009 /lib/libnss_nis-2.11.1.so
2100 0 0 0 0 0 0 7999 /lib/libnss_files-2.11.1.so
3752 2736 2736 0 0 864 1872 [heap]
24 24 24 0 0 0 24 [anon]
916 616 131 584 0 0 32 /bin/bash
-------- -------- -------- -------- -------- -------- -------- ------------------------------
22816 4004 3005 1116 0 876 2012 TOTAL
A continuación, la línea de comandos le dará la memoria total utilizada por los diversos procesos que se ejecutan en la máquina Linux en MB
ps -eo size,pid,user,command --sort -size | awk ''{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'' | awk ''{total=total + $1} END {print total}''
Estoy usando Arch Linux y hay un paquete maravilloso llamado ps_mem
ps_mem -p <pid>
Ejemplo de salida
$ ps_mem -S -p $(pgrep firefox)
Private + Shared = RAM used Swap used Program
355.0 MiB + 38.7 MiB = 393.7 MiB 35.9 MiB firefox
---------------------------------------------
393.7 MiB 35.9 MiB
=============================================
Si el proceso no consume demasiada memoria (ya sea porque espera que esto ocurra o porque algún otro comando haya dado esta indicación inicial), y el proceso puede soportar la detención durante un corto período de tiempo, puede intentar usar el comando gcore
gcore <pid>
Verifique el tamaño del archivo principal generado para obtener una buena idea de cuánta memoria está usando un proceso en particular.
Esto no funcionará demasiado bien si el proceso utiliza cientos de megas o conciertos, ya que la generación del núcleo puede tardar varios segundos o minutos en crearse, según el rendimiento de E / S. Durante la creación del núcleo, el proceso se detiene (o se "congela") para evitar cambios en la memoria. Así que ten cuidado.
También asegúrese de que el punto de montaje donde se genera el núcleo tenga suficiente espacio en disco y que el sistema no reaccione negativamente al archivo del núcleo que se está creando en ese directorio en particular.
Edición: esto funciona al 100% solo cuando aumenta el consumo de memoria.
Si desea monitorear el uso de la memoria mediante un proceso determinado (o un grupo de nombre común de intercambio procesado, por ejemplo google-chrome
, puede usar mi script bash:
while true; do ps aux | awk ‚{print $5, $11}’ | grep chrome | sort -n > /tmp/a.txt; sleep 1; diff /tmp/{b,a}.txt; mv /tmp/{a,b}.txt; done;
Esto buscará continuamente los cambios e imprimirlos.
Obtener valgrind. dale tu programa para que se ejecute, y te dirá mucho sobre su uso de memoria.
Esto se aplicaría solo en el caso de un programa que se ejecute durante algún tiempo y se detenga. No sé si valgrind puede hacerse cargo de un proceso que ya se está ejecutando o si no debería detener procesos como los demonios.
Otro voto para valgrind aquí, pero me gustaría agregar que puede usar una herramienta como Alleyoop para ayudarlo a interpretar los resultados generados por valgrind.
Uso las dos herramientas todo el tiempo y siempre tengo un código magro, sin fugas para mostrarlo con orgullo;)
Si bien esta pregunta parece ser sobre el examen de los procesos actualmente en ejecución, quería ver el pico de memoria utilizado por una aplicación de principio a fin. Además de valgrind, puedes usar tstime , que es mucho más simple. Mide el uso de memoria "highwater" (RSS y virtual). De esta respuesta .
Si desea algo más rápido que crear perfiles con Valgrind y su kernel es más antiguo y no puede usar smaps, un ps con las opciones para mostrar el conjunto residente del proceso (con ps -o rss,command
) puede darle una _aproximation_
cantidad real y razonable de Se está utilizando la memoria no intercambiada.
Te sugiero que utilices encima de ti. Puedes encontrar todo sobre esto en esta página . Es capaz de proporcionar todos los KPI necesarios para sus procesos y también puede capturar en un archivo.
Una buena prueba del uso más "real" es abrir la aplicación, luego ejecutar vmstat -s
y verificar la estadística de "memoria activa". Cierre la aplicación, espere unos segundos y vmstat -s
vuelva a ejecutar . Sin embargo, la aplicación liberó, evidentemente, mucha memoria activa.
Use la herramienta de GUI '' monitor del sistema '' incorporada disponible en ubuntu
Verifique el script de shell para verificar el uso de memoria por aplicación en Linux . También disponible en github y en una versión sin pegar y bc .
#!/bin/ksh
#
# Returns total memory used by process $1 in kb.
#
# See /proc/NNNN/smaps if you want to do something
# more interesting.
#
IFS=$''/n''
for line in $(</proc/$1/smaps)
do
[[ $line =~ ^Size:/s+(/S+) ]] && ((kb += ${.sh.match[1]}))
done
print $kb
ps -eo size,pid,user,command --sort -size | awk ''{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'' |cut -d "" -f2 | cut -d "-" -f1
Use esto como root y puede obtener una salida clara para el uso de memoria por cada proceso.
EJEMPLO DE SALIDA:
0.00 Mb COMMAND
1288.57 Mb /usr/lib/firefox
821.68 Mb /usr/lib/chromium/chromium
762.82 Mb /usr/lib/chromium/chromium
588.36 Mb /usr/sbin/mysqld
547.55 Mb /usr/lib/chromium/chromium
523.92 Mb /usr/lib/tracker/tracker
476.59 Mb /usr/lib/chromium/chromium
446.41 Mb /usr/bin/gnome
421.62 Mb /usr/sbin/libvirtd
405.11 Mb /usr/lib/chromium/chromium
302.60 Mb /usr/lib/chromium/chromium
291.46 Mb /usr/lib/chromium/chromium
284.56 Mb /usr/lib/chromium/chromium
238.93 Mb /usr/lib/tracker/tracker
223.21 Mb /usr/lib/chromium/chromium
197.99 Mb /usr/lib/chromium/chromium
194.07 Mb conky
191.92 Mb /usr/lib/chromium/chromium
190.72 Mb /usr/bin/mongod
169.06 Mb /usr/lib/chromium/chromium
155.11 Mb /usr/bin/gnome
136.02 Mb /usr/lib/chromium/chromium
125.98 Mb /usr/lib/chromium/chromium
103.98 Mb /usr/lib/chromium/chromium
93.22 Mb /usr/lib/tracker/tracker
89.21 Mb /usr/lib/gnome
80.61 Mb /usr/bin/gnome
77.73 Mb /usr/lib/evolution/evolution
76.09 Mb /usr/lib/evolution/evolution
72.21 Mb /usr/lib/gnome
69.40 Mb /usr/lib/evolution/evolution
68.84 Mb nautilus
68.08 Mb zeitgeist
60.97 Mb /usr/lib/tracker/tracker
59.65 Mb /usr/lib/evolution/evolution
57.68 Mb apt
55.23 Mb /usr/lib/gnome
53.61 Mb /usr/lib/evolution/evolution
53.07 Mb /usr/lib/gnome
52.83 Mb /usr/lib/gnome
51.02 Mb /usr/lib/udisks2/udisksd
50.77 Mb /usr/lib/evolution/evolution
50.53 Mb /usr/lib/gnome
50.45 Mb /usr/lib/gvfs/gvfs
50.36 Mb /usr/lib/packagekit/packagekitd
50.14 Mb /usr/lib/gvfs/gvfs
48.95 Mb /usr/bin/Xwayland :1024
46.21 Mb /usr/bin/gnome
42.43 Mb /usr/bin/zeitgeist
42.29 Mb /usr/lib/gnome
41.97 Mb /usr/lib/gnome
41.64 Mb /usr/lib/gvfs/gvfsd
41.63 Mb /usr/lib/gvfs/gvfsd
41.55 Mb /usr/lib/gvfs/gvfsd
41.48 Mb /usr/lib/gvfs/gvfsd
39.87 Mb /usr/bin/python /usr/bin/chrome
37.45 Mb /usr/lib/xorg/Xorg vt2
36.62 Mb /usr/sbin/NetworkManager
35.63 Mb /usr/lib/caribou/caribou
34.79 Mb /usr/lib/tracker/tracker
33.88 Mb /usr/sbin/ModemManager
33.77 Mb /usr/lib/gnome
33.61 Mb /usr/lib/upower/upowerd
33.53 Mb /usr/sbin/gdm3
33.37 Mb /usr/lib/gvfs/gvfsd
33.36 Mb /usr/lib/gvfs/gvfs
33.23 Mb /usr/lib/gvfs/gvfs
33.15 Mb /usr/lib/at
33.15 Mb /usr/lib/at
30.03 Mb /usr/lib/colord/colord
29.62 Mb /usr/lib/apt/methods/https
28.06 Mb /usr/lib/zeitgeist/zeitgeist
27.29 Mb /usr/lib/policykit
25.55 Mb /usr/lib/gvfs/gvfs
25.55 Mb /usr/lib/gvfs/gvfs
25.23 Mb /usr/lib/accountsservice/accounts
25.18 Mb /usr/lib/gvfs/gvfsd
25.15 Mb /usr/lib/gvfs/gvfs
25.15 Mb /usr/lib/gvfs/gvfs
25.12 Mb /usr/lib/gvfs/gvfs
25.10 Mb /usr/lib/gnome
25.10 Mb /usr/lib/gnome
25.07 Mb /usr/lib/gvfs/gvfsd
24.99 Mb /usr/lib/gvfs/gvfs
23.26 Mb /usr/lib/chromium/chromium
22.09 Mb /usr/bin/pulseaudio
19.01 Mb /usr/bin/pulseaudio
18.62 Mb (sd
18.46 Mb (sd
18.30 Mb /sbin/init
18.17 Mb /usr/sbin/rsyslogd
17.50 Mb gdm
17.42 Mb gdm
17.09 Mb /usr/lib/dconf/dconf
17.09 Mb /usr/lib/at
17.06 Mb /usr/lib/gvfs/gvfsd
16.98 Mb /usr/lib/at
16.91 Mb /usr/lib/gdm3/gdm
16.86 Mb /usr/lib/gvfs/gvfsd
16.86 Mb /usr/lib/gdm3/gdm
16.85 Mb /usr/lib/dconf/dconf
16.85 Mb /usr/lib/dconf/dconf
16.73 Mb /usr/lib/rtkit/rtkit
16.69 Mb /lib/systemd/systemd
13.13 Mb /usr/lib/chromium/chromium
13.13 Mb /usr/lib/chromium/chromium
10.92 Mb anydesk
8.54 Mb /sbin/lvmetad
7.43 Mb /usr/sbin/apache2
6.82 Mb /usr/sbin/apache2
6.77 Mb /usr/sbin/apache2
6.73 Mb /usr/sbin/apache2
6.66 Mb /usr/sbin/apache2
6.64 Mb /usr/sbin/apache2
6.63 Mb /usr/sbin/apache2
6.62 Mb /usr/sbin/apache2
6.51 Mb /usr/sbin/apache2
6.25 Mb /usr/sbin/apache2
6.22 Mb /usr/sbin/apache2
3.92 Mb bash
3.14 Mb bash
2.97 Mb bash
2.95 Mb bash
2.93 Mb bash
2.91 Mb bash
2.86 Mb bash
2.86 Mb bash
2.86 Mb bash
2.84 Mb bash
2.84 Mb bash
2.45 Mb /lib/systemd/systemd
2.30 Mb (sd
2.28 Mb /usr/bin/dbus
1.84 Mb /usr/bin/dbus
1.46 Mb ps
1.21 Mb openvpn hackthebox.ovpn
1.16 Mb /sbin/dhclient
1.16 Mb /sbin/dhclient
1.09 Mb /lib/systemd/systemd
0.98 Mb /sbin/mount.ntfs /dev/sda3 /media/n0bit4/Data
0.97 Mb /lib/systemd/systemd
0.96 Mb /lib/systemd/systemd
0.89 Mb /usr/sbin/smartd
0.77 Mb /usr/bin/dbus
0.76 Mb su
0.76 Mb su
0.76 Mb su
0.76 Mb su
0.76 Mb su
0.76 Mb su
0.75 Mb sudo su
0.75 Mb sudo su
0.75 Mb sudo su
0.75 Mb sudo su
0.75 Mb sudo su
0.75 Mb sudo su
0.74 Mb /usr/bin/dbus
0.71 Mb /usr/lib/apt/methods/http
0.68 Mb /bin/bash /usr/bin/mysqld_safe
0.68 Mb /sbin/wpa_supplicant
0.66 Mb /usr/bin/dbus
0.61 Mb /lib/systemd/systemd
0.54 Mb /usr/bin/dbus
0.46 Mb /usr/sbin/cron
0.45 Mb /usr/sbin/irqbalance
0.43 Mb logger
0.41 Mb awk { hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }
0.40 Mb /usr/bin/ssh
0.34 Mb /usr/lib/chromium/chrome
0.32 Mb cut
0.32 Mb cut
0.00 Mb [kthreadd]
0.00 Mb [ksoftirqd/0]
0.00 Mb [kworker/0:0H]
0.00 Mb [rcu_sched]
0.00 Mb [rcu_bh]
0.00 Mb [migration/0]
0.00 Mb [lru
0.00 Mb [watchdog/0]
0.00 Mb [cpuhp/0]
0.00 Mb [cpuhp/1]
0.00 Mb [watchdog/1]
0.00 Mb [migration/1]
0.00 Mb [ksoftirqd/1]
0.00 Mb [kworker/1:0H]
0.00 Mb [cpuhp/2]
0.00 Mb [watchdog/2]
0.00 Mb [migration/2]
0.00 Mb [ksoftirqd/2]
0.00 Mb [kworker/2:0H]
0.00 Mb [cpuhp/3]
0.00 Mb [watchdog/3]
0.00 Mb [migration/3]
0.00 Mb [ksoftirqd/3]
0.00 Mb [kworker/3:0H]
0.00 Mb [kdevtmpfs]
0.00 Mb [netns]
0.00 Mb [khungtaskd]
0.00 Mb [oom_reaper]
0.00 Mb [writeback]
0.00 Mb [kcompactd0]
0.00 Mb [ksmd]
0.00 Mb [khugepaged]
0.00 Mb [crypto]
0.00 Mb [kintegrityd]
0.00 Mb [bioset]
0.00 Mb [kblockd]
0.00 Mb [devfreq_wq]
0.00 Mb [watchdogd]
0.00 Mb [kswapd0]
0.00 Mb [vmstat]
0.00 Mb [kthrotld]
0.00 Mb [ipv6_addrconf]
0.00 Mb [acpi_thermal_pm]
0.00 Mb [ata_sff]
0.00 Mb [scsi_eh_0]
0.00 Mb [scsi_tmf_0]
0.00 Mb [scsi_eh_1]
0.00 Mb [scsi_tmf_1]
0.00 Mb [scsi_eh_2]
0.00 Mb [scsi_tmf_2]
0.00 Mb [scsi_eh_3]
0.00 Mb [scsi_tmf_3]
0.00 Mb [scsi_eh_4]
0.00 Mb [scsi_tmf_4]
0.00 Mb [scsi_eh_5]
0.00 Mb [scsi_tmf_5]
0.00 Mb [bioset]
0.00 Mb [kworker/1:1H]
0.00 Mb [kworker/3:1H]
0.00 Mb [kworker/0:1H]
0.00 Mb [kdmflush]
0.00 Mb [bioset]
0.00 Mb [kdmflush]
0.00 Mb [bioset]
0.00 Mb [jbd2/sda5
0.00 Mb [ext4
0.00 Mb [kworker/2:1H]
0.00 Mb [kauditd]
0.00 Mb [bioset]
0.00 Mb [drbd
0.00 Mb [irq/27
0.00 Mb [i915/signal:0]
0.00 Mb [i915/signal:1]
0.00 Mb [i915/signal:2]
0.00 Mb [ttm_swap]
0.00 Mb [cfg80211]
0.00 Mb [kworker/u17:0]
0.00 Mb [hci0]
0.00 Mb [hci0]
0.00 Mb [kworker/u17:1]
0.00 Mb [iprt
0.00 Mb [iprt
0.00 Mb [kworker/1:0]
0.00 Mb [kworker/3:0]
0.00 Mb [kworker/0:0]
0.00 Mb [kworker/2:0]
0.00 Mb [kworker/u16:0]
0.00 Mb [kworker/u16:2]
0.00 Mb [kworker/3:2]
0.00 Mb [kworker/2:1]
0.00 Mb [kworker/1:2]
0.00 Mb [kworker/0:2]
0.00 Mb [kworker/2:2]
0.00 Mb [kworker/0:1]
0.00 Mb [scsi_eh_6]
0.00 Mb [scsi_tmf_6]
0.00 Mb [usb
0.00 Mb [bioset]
0.00 Mb [kworker/3:1]
0.00 Mb [kworker/u16:1]