Cómo comprobar la utilización de la memoria en Linux
¿Cómo comprobar la utilización de la memoria en Linux mediante la línea de comandos y las opciones de interfaz gráfica de usuario?
Tenemos RAM física como 16 GB y memoria de intercambio. La memoria de intercambio no es más que espacio en disco que permite a su computadora Linux ejecutar más aplicaciones simultáneamente de las que caben en la memoria del sistema (RAM). Esta página explica varios comandos para comprobar el uso y la utilización de la memoria en Linux utilizando herramientas de línea de comandos y GUI.
Comandos para comprobar la utilización de la memoria en Linux
Su sistema Linux debe ejecutarse a un nivel óptimo. La memoria juega un papel crítico en un sistema Linux. Un desarrollador o administrador de sistemas experimentado debe conocer la cantidad total de material físico libre y usado, incluida la memoria de intercambio en el servidor. Sería mejor que también vigilara los búferes y cachés utilizados por el núcleo.
El archivo/proc / meminfo
El archivo/proc / meminfo informa estadísticas sobre el uso de memoria en Linux. Utilice el comando cat / less o el comando grep / egrep de la siguiente manera en su caja de Linux:cat /proc/meminfo
more /proc/meminfo
Cada línea del archivo /proc/meminfo consta de un nombre de parámetro, seguido de dos puntos, el valor del parámetro y una unidad de medida opcional. Por ejemplo, «kB».
Descripción de los parámetros de utilización de memoria
Parámetro | Descripción |
---|---|
MemTotal | RAM total utilizable (p. ej., RAM física menos unos pocos bits reservados y el código binario del núcleo). |
MemFree | La suma de LowFree+HighFree. |
MemAvailable | (desde Linux 3.14) Una estimación de la cantidad de memoria disponible para iniciar nuevas aplicaciones, sin intercambio. |
Búferes | Almacenamiento relativamente temporal para bloques de disco sin procesar que no deberían ser tremendamente grandes (aproximadamente 20 MB). |
Caché en memoria | para archivos leídos desde el disco (caché de página). No incluye SwapCached. |
SwapCached | La memoria que una vez se intercambió, se vuelve a intercambiar, pero también se encuentra en el archivo de intercambio. |
Memoria activa | que se ha utilizado más recientemente y que normalmente no se recupera a menos que sea absolutamente necesario. |
Memoria inactiva | que se ha utilizado menos recientemente. Es más elegible para ser reclamado para otros fines. |
HighTotal | cantidad Total de highmem. Highmem es toda la memoria por encima de ~860 MB de memoria física. Las áreas Highmem son para uso de programas de espacio de usuario o para la caché de páginas. El núcleo debe usar trucos para acceder a esta memoria, haciendo que el acceso sea más lento que el de lowmem. |
HighFree | Cantidad de highmem. |
LowFree | Cantidad de lowmem. |
SwapTotal | cantidad Total de espacio de intercambio disponible. |
SwapFree | Cantidad de espacio de intercambio que está actualmente en desuso. |
Memoria sucia | que está esperando para volver a escribirse en el disco. |
Memoria Writeback | que se está escribiendo activamente en el disco. |
Páginas anónimas | Páginas sin respaldo de archivos asignadas a tablas de páginas de espacio de usuario. |
Archivos mapeados | que se han mapeado en memoria(con mmap (2)), como bibliotecas. |
Shmem | Cantidad de memoria consumida en sistemas de archivos tmpfs(5). |
KReclaimable | Asignaciones del núcleo que el núcleo intentará recuperar bajo presión de memoria. Incluye Reclaimable (abajo), y otras asignaciones directas con un encogedor. |
Caché de estructuras de datos en el núcleo de Slab | . (Véase slabinfo(5).) |
SReclaimable | Parte de la losa, que podría ser recuperada, como cachés. |
SUnreclaim | Parte de la losa, que no se puede recuperar con la presión de la memoria. |
KernelStack | Cantidad de memoria asignada a las pilas de kernel. |
PageTables | Cantidad de memoria dedicada al nivel más bajo de tablas de páginas. |
NFS_Unstable | Páginas NFS enviadas al servidor, pero que aún no se han comprometido a un almacenamiento estable. |
Memoria Bounce | utilizada para los «búferes de rebote»de dispositivos de bloque. |
Memoria WritebackTmp | utilizada por FUSE para búferes de escritura temporal. |
CommitLimit | Esta es la cantidad total de memoria disponible actualmente para ser asignada en el sistema, expresada en kilobytes. Este límite solo se cumple si se habilita la contabilidad estricta de sobrecompromiso (modo 2 en /proc/sys/vm/overcommit_memory). El límite se calcula de acuerdo con la fórmula descrita en /proc/sys/vm/overcommit_memory. |
Committed_AS | La cantidad de memoria actualmente asignado en el sistema. La memoria confirmada es una suma de toda la memoria que ha sido asignada por los procesos, incluso si no ha sido «utilizada» por ellos hasta ahora. Un proceso que asigna 1 GB de memoria (usando malloc(3) o similar), pero toca solo 300 MB de esa memoria, se mostrará como que usa solo 300 MB de memoria, incluso si tiene el espacio de direcciones asignado para todo el 1 GB. Este 1 GB es memoria a la que la máquina virtual ha» confiado » y la aplicación de asignación puede usarla en cualquier momento. Con el sobre compromiso estricto habilitado en el sistema (modo 2 en /proc/sys/vm / overcommit_memory), no se permitirán asignaciones que excedan el límite de compromiso. Esto es útil si se necesita garantizar que los procesos no fallarán debido a la falta de memoria una vez que la memoria se haya asignado correctamente. |
VmallocTotal | Tamaño total del área de memoria vmalloc. |
VmallocUsed | Cantidad de vmalloc área que se utiliza. Desde Linux 4.4, este campo ya no se calcula, y está codificado como 0. Véase /proc / vmallocinfo. |
VmallocChunk | Bloque contiguo más grande de área vmalloc que está libre. Desde Linux 4.4, este campo ya no se calcula y está codificado como 0. Véase /proc / vmallocinfo. |
LazyFree | Muestra la cantidad de memoria marcada por madvise(2) MADV_FREE. |
AnonHugePages | Páginas enormes sin respaldo de archivos asignadas a tablas de páginas de espacio de usuario. |
ShmemHugePages | Memoria utilizada por la memoria compartida (shmem) y tmpfs(5) asignados con páginas enormes |
ShmemPmdMapped | Memoria compartida asignada al espacio de usuario con páginas enormes. |
CmaTotal | Total de páginas CMA (Asignador de Memoria Contiguo). |
CmaFree | Páginas libres de CMA (Asignador de Memoria Contiguo). |
HugePages_Total | El tamaño del grupo de páginas enormes. |
HugePages_Free | El número de páginas enormes del grupo que aún no están asignadas. |
HugePages_Rsvd | Este es el número de páginas enormes para las que se ha hecho un compromiso de asignación del grupo, pero aún no se ha hecho ninguna asignación. Estas páginas enormes reservadas garantizan que una aplicación podrá asignar una página enorme del grupo de páginas enormes en el momento de la falla. |
HugePages_Surap | Este es el número de páginas enormes en el grupo por encima del valor en /proc/sys/vm/nr_hugepages. El número máximo de páginas enormes excedentes está controlado por / proc/sys/vm / nr_overcommit_hugepages. |
Tamaño de página | El tamaño de páginas enormes. |
DirectMap4k | Número de bytes de RAM asignados linealmente por el núcleo en páginas de 4 Kb. |
DirectMap4M | Número de bytes de RAM asignados linealmente por el núcleo en páginas de 4 MB. |
DirectMap2M | Número de bytes de RAM asignados linealmente por el núcleo en páginas de 2 MB. |
DirectMap1G | x86 con CONFIG_X86_64 y CONFIG_X86_DIRECT_GBPAGES habilitadas. |
Podemos filtrar el archivo usando el comando grep o el comando egrep de la siguiente manera:grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Utilizando el comando free para comprobar la utilización de memoria usada y libre
La salida de/proc / meminfo es potente pero no fácil de usar. Por lo tanto, debemos usar el comando libre. El comando free muestra la cantidad de memoria libre y usada en el sistema Linux. Por ejemplo:free
¿Quieres ver la salida legible por humanos? Trate de:free -h
free --human
ejemplos de productos:
total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
la Columna | Descripción |
---|---|
total | Total de memoria instalada |
utiliza | memoria en uso (calculado como el total de la libre – tampones – cache) |
gratis | memoria no utilizada (MemFree y SwapFree en /proc/meminfo) |
compartida | Memoria utilizada principalmente por tmpfs (Shmem en /proc/meminfo) |
los búferes | Memoria usada por el kernel de amortiguadores (Buffers en /proc/meminfo) |
caché | Memoria utilizada por el caché de la página y losas (En caché y recuperables en/proc / meminfo) |
buff / caché | Suma de buffers y caché |
disponible | Estimación de la cantidad de memoria disponible para iniciar nuevas aplicaciones, sin intercambio. |
Podemos repetir la salida de comandos libres de impresión cada N segundos. Por ejemplo, imprima la salida cada 5 segundos y salga después de diez repeticiones (recuentos) en pantalla:free -s 5 -c 10
Podemos controlar la salida del comando libre de la siguiente manera:free
free -k
free -g
free -m
Opción | Mostrar la salida en |
---|---|
-b, –bytes | |
–kilo | kilobytes |
–mega | megabytes |
–giga | gigabytes |
–tera | terabytes |
–peta | petabytes |
-k, –kibi | kibibytes |
-m, –mebi | mebibytes |
-g, — gibi | gibibytes |
–tebi | tebibytes |
–pebi | pebibytes |
comando vmstat
El comando vmstat es potente y muestra información sobre el hardware Linux, como:
- Procesos
- Memoria
- Paginación
- Bloquear IO
- Trampas
- Discos
- Actividad de CPU
Abra el terminal y escriba el siguiente comando:vmstat
Sesión de ejemplo desde mi escritorio Ubuntu Linux:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0
Pase el-w para ver una salida amplia en la pantalla:vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0
Campo | Descripción |
---|---|
swpd | la cantidad de memoria virtual utilizada. |
free | la cantidad de memoria inactiva. |
buff | la cantidad de memoria utilizada como amortiguadores. |
caché | la cantidad de memoria utilizada como memoria caché. |
inact | la cantidad de memoria inactiva. (opción-a) |
activo | la cantidad de memoria activa. (opción-a) |
si | Cantidad de memoria intercambiada desde el disco (/s). |
así que | Cantidad de memoria intercambiada a disco (s). |
comando superior y htop
Los comandos superior y htop proporcionan una vista dinámica en tiempo real de un sistema Linux en ejecución. Esto incluye información sobre:
- Sin anuncios y seguimiento
- Guías detalladas para desarrolladores y administradores de sistemas en Opensourceflare
- Únase a mi Patreon para apoyar a creadores de contenido independientes y comenzar a leer las guías más recientes:
- Cómo configurar el clúster de Redis sentinel en Ubuntu o Debian Linux
- Cómo configurar claves SSH Con YubiKey como autenticación de dos factores (U2F/FIDO2)
- Cómo configurar el clúster Mariadb Galera en Ubuntu o Debian Linux
- Un tutorial de podman para principiantes-parte I (ejecutar contenedores Linux sin Docker y en modo sin demonios)
- Cómo proteger Linux contra dispositivos USB falsos usando USBGuard
- Si su dominio no está enviando correo electrónico, configure estos ajustes de DNS para evitar la suplantación de identidad y el phishing
- Utilización de hardware y CPU
- Tiempo de actividad de Linux
- Utilización de memoria e intercambio
- Procesos del sistema y más
Tenga en cuenta que htop no está instalado de forma predeterminada. Pero puede instalarlo en CentOS, Debian, Ubuntu y otros sistemas operativos fácilmente.
Ejecute el siguiente comando:top
htop
Reporte el uso de memoria con memoria compartida dividida proporcionalmente
Los informes de la herramienta smem:
- Uso de memoria física teniendo en cuenta las páginas de memoria compartida. La memoria no compartida se informa como el USS (Tamaño de conjunto único).
- La memoria compartida se divide de manera uniforme entre los procesos que comparten esa memoria.
- La memoria no compartida (USS) más la proporción de memoria compartida de un proceso se reporta como PSS (Tamaño de conjunto proporcional).
- El USS y el PSS solo incluyen el uso de memoria física. No incluyen la memoria que se ha intercambiado en disco.
- La memoria puede ser reportada por un proceso, por un usuario, por mapeo o por todo el sistema. Tanto el modo de texto como la salida gráfica están disponibles.
Se puede instalar smem usando el comando apt / apt-get en un Linux Debian/Ubuntu:sudo apt install smem
Ejecútelo de la siguiente manera:smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help
User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360
Comprobación de la utilización de memoria en Linux mediante la interfaz gráfica de usuario
System Monitor es una aplicación de interfaz gráfica de usuario para Linux que le muestra qué programas se están ejecutando y cuánto tiempo de procesador, memoria y espacio en disco se están utilizando. Podemos abrir el Monitor del sistema desde la vista general de Actividades. Presiona la Súper tecla de tu teclado. Puede ver sus ventanas y aplicaciones en la descripción general. También puede comenzar a escribir para buscar en sus aplicaciones, como System Monitor. La pestaña Recursos le indica cuánta memoria (RAM) de su computadora se está utilizando. Para comprobar qué procesos utilizan más memoria: Haga clic en la pestaña Procesos. Haga clic en el encabezado de la columna de memoria para ordenar los procesos según el uso de memoria.
Consulte la documentación para obtener más información.
Resumiendo
Aprendió a encontrar la utilización de la memoria de Linux (RAM) en Linux mediante herramientas GUI y CLI.
feed RSS newsletter Boletín semanal por correo electrónico➔
Categoría | Lista de comandos de Unix y Linux |
---|---|
Gestores de descargas | wget |
Documentación | ayuda * mandb * man * pinfo |
Analizadores de espacio en disco | df * duf * ncdu * pydf |
Gestión de archivos | cat * cp * menos • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
el Administrador de Paquetes | apk • apt |
la Gestión de Procesos de | bg • chroot • cron • ignorar • fg • miradas • gtop • iotop • puestos de trabajo • killall • matar • pidof • pstree • pwdx • tiempo • vtop |
Buscando | ag • grep • whereis • que |
Shell builtins | compgen • echo • printf |
de procesamiento de Texto | corte • rev |
la Información del Usuario | grupos • id • lastcomm • último * lid / libuser-lid * logname * miembros * usuarios * whoami * who * w |
WireGuard VPN | Alpine * CentOS 8 • Debian 10 * Firewall * Ubuntu 20.04 |