Descripción general

A veces, es posible que necesitemos verificar el tamaño total de la memoria en un servidor que ejecuta Linux o que necesitemos usar estadísticas de memoria en scripts de shell. Afortunadamente, tenemos acceso a numerosas herramientas que podemos usar para verificar la memoria física total. En este tutorial, vamos a tomar diferentes enfoques para servir a ese propósito mediante el uso de varios comandos y herramientas útiles.

2. free Command

free es el más simple de todos los comandos que veremos. Se utiliza para imprimir el uso de memoria física y de intercambio; de forma predeterminada, se imprime en la salida estándar. El comando gratuito es uno de los comandos más utilizados para comprobar rápidamente las estadísticas de RAM, ya que está disponible en la mayoría de las distribuciones de Linux. Simplemente podemos escribir el comando free en nuestro terminal sin ningún indicador:

$ free
 total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0

Como podemos, el tamaño de la memoria física se imprime en bytes. Sin embargo, podemos imprimir fácilmente la salida en un formato legible por humanos utilizando la bandera-h o-human:

$ free -h
 total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B

Como se puede ver en la salida anterior, tenemos un total de 7,6 GiB de RAM. Además, hay muchas otras opciones que se pueden usar para imprimir la salida en el formato que nos guste, como –kilo, –mega, –Giga, etc. Una opción más interesante es la opción-s:

$ free -h -s 5

La bandera-s permanece en segundos, por lo que free will imprime el uso de RAM cada 5 segundos en este ejemplo. Es especialmente útil si queremos monitorear el uso de RAM en un intervalo especificado. Podemos terminar fácilmente el proceso con el atajo de teclado Ctrl + C.

3. Comando vmstat

Al igual que el comando gratuito, vmstat (estadísticas de memoria virtual) también está disponible en la mayoría de las distribuciones de Linux. De forma predeterminada, cuando escribimos el comando vmstat, imprimirá la memoria libre, en búfer y en caché junto con información de intercambio, CPU, E / S y sistema:

$ 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 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0

La bandera –w o-wide imprime la salida en un formato legible amplio. Ya que estamos interesados en el tamaño total de RAM, vamos a agregar la bandera-s o –stats:

$ vmstat -s
 8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks

La primera entrada en la salida es la RAM física total. A veces, no necesitamos toda la información, por lo que podemos usar grep para extraer solo la entrada deseada:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. top Command

top es básicamente un administrador de tareas de línea de comandos con una salida en tiempo real. Se utiliza para comprobar los procesos en ejecución en un diseño de tabla limpio. También nos muestra la CPU, la RAM y la información del sistema en general. Podemos encenderlo simplemente ejecutando el comando superior:

$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem

En la parte superior, podemos ver la información de la memoria al lado del campo Mem y observar que tenemos un total de 7833 MiB de RAM total.

5. dmidecode Utility

dmidecode es una herramienta auxiliar que imprime información sobre componentes de hardware, como especificaciones de hardware, números de serie y versiones de BIOS, en un formato legible por humanos. La información de hardware se extrae de la tabla DMI. También podemos usarlo para encontrar información interesante sobre nuestro sistema, como la memoria máxima soportada.

5.1. Instalación de código dmid

el código dmid no está instalado en algunas distribuciones de Linux de forma predeterminada, por lo que lo vamos a instalar primero. Podemos instalar dmidecode directamente desde nuestro repositorio de distribución usando un gestor de paquetes.

Para distribuciones basadas en Ubuntu, podemos instalar el paquete a través de apt:

# apt install dmidecode

Para RHEL, Fedora y CentOS, podemos usar yum:

# yum install dmidecode

En distribuciones basadas en Arch, simplemente use pacman:

# pacman -Sy dmidecode

5.2. Usando dmidecode

Una vez finalizada la instalación, podemos ejecutar el comando dmidecode desde nuestro terminal:

# dmidecode

Necesitamos tener privilegios de root para ejecutar código dmid. Una vez que ejecutemos el comando, podremos ver información detallada del hardware. Contiene mucha información relacionada con nuestros componentes de hardware, pero solo nos interesa el tamaño total de nuestra memoria.

Afortunadamente, podemos alimentar la opción-type al comando para diferentes componentes como BIOS, memoria, procesador, temperaturas, etc. La opción-type espera un número para los tipos DMI.

En nuestro caso, queremos ver el tipo de memoria DMI, al que se puede acceder con los números asignados 5, 6, 16, 17, 18, 19, 20, 21, y 22. Sin embargo, estamos interesados en el número 19, que imprimirá los dispositivos RAM que actualmente están conectados a las ranuras de nuestra placa base:

# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1

Como podemos ver, solo tenemos un solo dispositivo RAM con 8 GB de tamaño total instalado en una de las ranuras de RAM.

6. Archivo virtual/proc / meminfo

El directorio / proc es un tipo especial de directorio que contiene archivos virtuales. Estos archivos virtuales son una forma de echar un vistazo al kernel de Linux, los procesos y las configuraciones. Estos archivos en realidad no existen en el disco y no ocupan espacio, pero se crean cuando se leen. El acceso a algunos de los archivos requiere acceso de root.

Hay un archivo virtual especial llamado meminfo, dentro del directorio / proc, que se puede leer con comandos como cat y less. El archivo meminfo contiene información sobre el tamaño de nuestra memoria física, entre otra información útil. Leamos el archivo/proc / meminfo usando cat:

$ cat /proc/meminfo

En el ejemplo anterior, hemos utilizado el comando cat, que es una utilidad útil que puede leer desde un archivo o entrada estándar. Una vez ejecutado el comando, leerá /proc/meminfo y nos presentará una salida larga con respecto a nuestra memoria física. Solo nos interesa el tamaño total de RAM, que aparece en las tres líneas superiores de la salida:

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB

Imprimimos solo las líneas que nos interesan usando el comando principal. El argumento-n proporcionado al comando head se usa para especificar el número de líneas a leer. Los tamaños están impresos en kilobytes y deberían darnos una idea de cuál es nuestra memoria física total, gratuita y disponible.

Supongamos que estamos escribiendo un script Bash donde necesitamos procesar el tamaño físico de la RAM. Podemos lograr eso leyendo el archivo/proc / meminfo primero y luego grep el tamaño total de la memoria:

#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"

Ahora, guardemos el script y hagámoslo ejecutable:

$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB

Usando Administradores de tareas GUI

Hay una variedad de administradores de tareas GUI que podemos usar para verificar el uso de CPU, RAM y red, además de administrar procesos. Echemos un vistazo rápido a los más populares para Linux.

7.1. GNOME System Monitor

GNOME System Monitor es el administrador de tareas predeterminado que se incluye con el entorno de escritorio GNOME. Sin embargo, si estamos ejecutando un entorno de escritorio diferente, podemos buscar fácilmente el paquete gnome-system-monitor en nuestro repositorio de paquetes de distribución. Una vez instalado, podemos lanzarlo desde la línea de comandos:

$ gnome-system-monitor

Al navegar a la pestaña Recursos, podemos ver nuestro tamaño total de memoria entre otras estadísticas.

7.2. KSysGuard

KSysGuard es el administrador de tareas predeterminado desarrollado por la comunidad de KDE y viene con KDE por defecto. De manera similar, si estamos utilizando un entorno de escritorio diferente, podemos instalarlo fácilmente en nuestro sistema buscando el paquete ksysguard en el repositorio de paquetes. Podemos iniciarlo con el comando ksysguard una vez instalado:

$ ksysguard

Una vez que se inicie ksysguard, podemos dirigirnos a la pestaña de carga del sistema y ver la información de nuestra memoria junto con un bonito gráfico.

Conclusión

En este artículo, analizamos diferentes comandos y herramientas que pueden ayudarnos a averiguar el tamaño de la memoria física de nuestro sistema Linux.

Cubrimos el comando libre mínimo y su comando alternativo vmstat. Luego usamos el comando superior para encontrar información del sistema. También vimos la utilidad de código dmid y cómo podemos extraer la información de la memoria física de la tabla DMI.

Después, aprendimos qué es el directorio / proc y cómo podemos leer el archivo/proc / meminfo para comprobar el tamaño total de RAM y usarlo en un script bash. Finalmente, aprendimos sobre un par de administradores de tareas gráficos y cómo podemos usarlos para verificar el uso de RAM y las estadísticas.

Si tiene algunos años de experiencia en el ecosistema Linux y está interesado en compartir esa experiencia con la comunidad, eche un vistazo a nuestras Pautas de contribución.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.