Tutoriales

Cómo compulsar la utilización de la memoria en Linux

H¿Cómo puedo compulsar la utilización de la memoria en Linux usando la término de comandos y las opciones de GUI?

Tenemos RAM física como 16GB y memoria de intercambio. La memoria de intercambio no es más que espacio en disco que permite que su computadora Linux ejecute más aplicaciones simultáneamente de las que caben en la memoria del sistema (RAM). Esta página explica varios comandos para compulsar el uso y la utilización de la memoria en Linux usando herramientas de término de comandos y GUI.



Comandos para compulsar la utilización de la memoria en Linux

Su sistema Linux debe funcionar a un nivel inmejorable. La memoria juega un papel fundamental en un sistema Linux. Un desarrollador o un administrador de sistemas experimentado debe conocer la cantidad total de material físico autónomo y usado, incluida la memoria de intercambio en el servidor. Sería mejor si estuviera atento a los búferes y cachés que usa el kernel igualmente.

los / proc / meminfo expediente

los / proc / meminfo El archivo informa estadísticas sobre el uso de memoria en Linux. Use el comando cat / less command o grep command / egrep command de la próximo modo en su caja de Linux:
cat /proc/meminfo
more /proc/meminfo


Cada término del / proc / meminfo El archivo consta de un nombre de parámetro, seguido de dos puntos, el valía del parámetro y una dispositivo de medida opcional. Por ejemplo, «KB“.

Comprender los parámetros de utilización de la memoria

Tabla de descripción de campos
ParámetroDescripción
MemTotalRAM total idóneo (es asegurar, RAM física menos algunos bits reservados y el código binario del kernel).
MemFreeLa suma de LowFree + HighFree.
MemDisponible(desde Linux 3.14) Una estimación de la cantidad de memoria acondicionado para iniciar nuevas aplicaciones, sin cambiar.
AmortiguadoresAlmacenamiento relativamente temporal para bloques de disco sin formato que no deberían ser demasiado grandes (20 MB aproximadamente).
En distinciónPersonalidad en memoria para archivos leídos desde el disco (el distinción de página). No incluye SwapCached.
SwapCachedLa memoria que una vez se intercambió, se intercambia nuevamente, pero igualmente se encuentra en el archivo de intercambio.
ActivoMemoria que se ha utilizado más recientemente y que normalmente no se recupera a menos que sea absolutamente necesario.
InactivoMemoria que se ha utilizado menos recientemente. Es más elegible para ser reclamado para otros fines.
AltoTotalCantidad total de highmem. Highmem es toda la memoria por encima de ~ 860 MB de memoria física. Las áreas de memoria suscripción son para uso de programas de espacio de adjudicatario o para la distinción de página. El kernel debe usar trucos para aceptar a esta memoria, lo que hace que sea más tardo que lowmem.
HighFreeCantidad de highmem de gorra.
LowFreeCantidad de lowmem de gorra.
SwapTotalCantidad total de espacio de intercambio acondicionado.
SwapFreeCantidad de espacio de intercambio que no se utiliza actualmente.
AbandonadoMemoria que está esperando retornar a escribirse en el disco.
RespóndemeMemoria que se está escribiendo activamente en el disco.
AnonPagesPáginas sin respaldo de archivos mapeadas en tablas de páginas de espacio de adjudicatario.
MapeadoArchivos que se han asignado a la memoria (con mmap (2)), como bibliotecas.
ShmemCantidad de memoria consumida en los sistemas de archivos tmpfs (5).
KRecuperableAsignaciones de kernel que el kernel intentará recuperar bajo presión de memoria. Incluye SReclaimable (debajo) y otras asignaciones directas con reductor.
PlanchaPersonalidad de estructuras de datos en el núcleo. (Ver slabinfo (5).)
S recuperableParte de Slab, que podría recuperarse, como cachés.
SUnreclaimParte de Slab, que no se puede recuperar con la presión de la memoria.
KernelStackCantidad de memoria asignada a las pilas del kernel.
PageTablesCantidad de memoria dedicada al nivel más bajo de tablas de páginas.
NFS_UnstablePáginas NFS enviadas al servidor, pero aún no comprometidas con el almacenamiento estable.
RebotarMemoria utilizada para los «búferes de rechazo» del dispositivo de bando.
WritebackTmpMemoria utilizada por FUSE para búferes de escritura diferida temporales.
CommitLimitEsta es la cantidad total de memoria acondicionado actualmente para ser asignada en el sistema, expresada en kilobytes. Este frontera se cumple solo si está habilitada la contabilidad estricta de sobrecompromiso (modo 2 en / proc / sys / vm / overcommit_memory). El frontera se calcula de acuerdo con la fórmula descrita en / proc / sys / vm / overcommit_memory.
Comprometido_ASLa cantidad de memoria actualmente asignada en el sistema. La memoria comprometida es una suma de toda la memoria que ha sido asignada por los procesos, incluso si todavía no ha sido «utilizada» por ellos. Un proceso que asigna 1GB de memoria (usando malloc (3) o similar), pero toca solo 300MB de esa memoria, mostrará que usa solo 300MB de memoria incluso si tiene el espacio de direcciones asignado para el 1GB completo. Este 1GB es memoria que ha sido «comprometida» por la VM y puede ser utilizada en cualquier momento por la aplicación de asignación. Con el overcommit exacto recaudador en el sistema (modo 2 en / proc / sys / vm / overcommit_memory), no se permitirán asignaciones que excedan el CommitLimit. Esto es útil si se necesita avalar que los procesos no fallarán adecuado a la errata de memoria una vez que la memoria se haya asignado correctamente.
VmallocTotalTamaño total del radio de memoria de vmalloc.
Vmalloc UsadoCantidad de radio de vmalloc que se utiliza. Desde Linux 4.4, este campo ya no se calcula y está codificado como 0. Consulte / proc / vmallocinfo.
VmallocChunkEl bando contiguo más amplio del radio de vmalloc que está autónomo. Desde Linux 4.4, este campo ya no se calcula y está codificado como 0. Consulte / proc / vmallocinfo.
LazyFreeMuestra la cantidad de memoria marcada por madvise (2) MADV_FREE.
AnonHugePagesGrandes páginas sin respaldo de archivos mapeadas en tablas de páginas de espacio de adjudicatario.
ShmemEnormePáginasMemoria utilizada por memoria compartida (shmem) y tmpfs (5) asignada con páginas enormes
ShmemPmdMappedMemoria compartida asignada al espacio del adjudicatario con páginas enormes.
CmaTotalTotal de páginas CMA (asignador de memoria contigua).
CmaFreePáginas gratuitas de CMA (asignador de memoria contigua).
HugePages_TotalEl tamaño del rama de páginas enormes.
HugePages_FreeLa cantidad de páginas enormes en el rama que aún no están asignadas.
HugePages_RsvdEste es el número de páginas enormes para las que se ha hecho un compromiso de asignación del rama, pero aún no se ha realizado ninguna asignación. Estas páginas enormes reservadas garantizan que una aplicación podrá asignar una página enorme del rama de páginas enormes en el momento de la rotura.
HugePages_SurapEste es el número de páginas enormes en el rama por encima del valía en / proc / sys / vm / nr_hugepages. El número mayor de páginas enormes excedentes está controlado por / proc / sys / vm / nr_overcommit_hugepages.
EnormeEl tamaño de páginas enormes.
DirectMap4kNúmero de bytes de RAM mapeados linealmente por kernel en páginas de 4kB.
DirectMap4MNúmero de bytes de RAM mapeados linealmente por kernel en páginas de 4 MB.
DirectMap2MNúmero de bytes de RAM mapeados linealmente por kernel en páginas de 2 MB.
DirectMap1Gx86 con CONFIG_X86_64 y CONFIG_X86_DIRECT_GBPAGES habilitados.

Podemos filtrar el archivo usando el comando grep o el comando egrep de la próximo modo:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo

Usando el comando autónomo para compulsar la utilización de memoria usada y autónomo

La salida de / proc / meminfo es potente pero no sencillo de usar. Por lo tanto, debemos usar el comando autónomo. El comando free muestra la cantidad de memoria autónomo y usada en el sistema Linux. Por ejemplo:
free
¿Quiere ver una salida descifrable por humanos? Tratar:
free -h
free --human

Futuro de muestra:

              total        used        free      shared  buff/cache   available
Mem:           94Gi        15Gi       672Mi       428Mi        78Gi        77Gi
Swap:            0B          0B          0B
Las columnas mostradas son las siguientes:
ColumnaDescripción
totalMemoria total instalada
usadoMemoria usada (calculada como total – autónomo – búferes – distinción)
autónomoMemoria no utilizada (MemFree y SwapFree en / proc / meminfo)
compartidoMemoria utilizada principalmente por tmpfs (Shmem en / proc / meminfo)
amortiguadoresMemoria utilizada por los búferes del kernel (búferes en / proc / meminfo)
cacheMemoria utilizada por la distinción de página y las losas (en distinción y SReclaimable en / proc / meminfo)
beneficio / distinciónSuma de búferes y distinción
acondicionadoEstimación de la cantidad de memoria acondicionado para iniciar nuevas aplicaciones, sin cambiar.

Podemos repetir la impresión de la salida del comando autónomo cada N segundos. Por ejemplo, imprima la salida cada 5 segundos y salga posteriormente de diez repeticiones (recuentos) de este tipo en la pantalla:
free -s 5 -c 10
Podemos controlar la salida del comando autónomo de la próximo modo:
free [option]
free -k
free -g
free -m

Control de salida de comando autónomo [option]
OpciónMostrar salida en
-B, --bytesbytes
--kilo kilobytes
--megamegabytes
--gigagigabytes
--teraterabytes
--petapetabytes
-k, --kibikibibytes
-metro, --mebimebibytes
-gramo, --gibigibibytes
--tebitebibytes
--pebipebibytes

comando vmstat

El comando vmstat es poderoso y muestra información sobre el hardware de Linux, como:

  • Procesos
  • Memoria
  • Paginación
  • Circunvalar E / S
  • Trampas
  • Discos
  • Actividad de la CPU

Refugio la terminal y escriba el próximo comando:
vmstat
Sesión de muestra 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

Pasa 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
DESCRIPCIÓN DE CAMPO PARA MODO VM (Memoria e intercambio)
CampoDescripción
swpd la cantidad de memoria aparente utilizada.
autónomo la cantidad de memoria inactiva.
válido la cantidad de memoria utilizada como búfer.
cache la cantidad de memoria utilizada como distinción.
inactivo la cantidad de memoria inactiva. (-una opción)
activo la cantidad de memoria activa. (-una opción)
si Cantidad de memoria intercambiada desde disco (s).
asi que Cantidad de memoria intercambiada a disco (s).

comando top y htop

Los comandos top y htop proporcionan una audiencia dinámica en tiempo efectivo de un sistema Linux en ejecución. Esto incluye información sobre:

  • 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 próximo comando:
top
htop

Informar el uso de la memoria con la memoria compartida dividida proporcionalmente

La aparejo SMEM informa:

  • Uso de memoria física teniendo en cuenta las páginas de memoria compartida. La memoria no compartida se informa como USS (tamaño de conjunto único).
  • La memoria compartida se divide equitativamente entre los procesos que comparten esa memoria.
  • La memoria no compartida (USS) más la proporción de memoria compartida de un proceso se informa como el PSS (tamaño de conjunto proporcional).
  • USS y PSS solo incluyen el uso de memoria física. No incluyen la memoria que se ha intercambiado en el disco.
  • La memoria puede ser reportada por un proceso, por un adjudicatario, por mapeo o en todo el sistema. Están disponibles tanto el modo de texto como la salida gráfica.

Uno puede instalar smem usando el comando apt / apt-get command en Debian / Ubuntu Linux:
sudo apt install smem
Ejecútelo de la próximo modo:
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

Demostración de la utilización de la memoria en Linux usando la GUI

System Instructor es una aplicación GUI de 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 desobstruir el Instructor del sistema desde el Sinopsis de actividades. presione el súper tecla en su teclado. Puede ver sus ventanas y aplicaciones en la descripción normal. Asimismo puede comenzar a escribir para despabilarse sus aplicaciones, como Instructor del sistema. los Fortuna La pestaña le indica la cantidad de memoria (RAM) de su computadora que se está utilizando. Para comprobar qué procesos están usando más memoria: Haga clic en el Procesos pestaña. Haga clic en el Memoria encabezado de columna para ordenar los procesos de acuerdo con el uso de la memoria.

Consulte la documentación para obtener más información.

Resumiendo

Aprendió cómo encontrar la utilización de la memoria (RAM) de Linux en Linux usando herramientas GUI y CLI.



Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba