Mejora de RAM en servidor local
Publicado: 2023-02-19Mi servidor en casa tiene algo de edad, solo venía con 4 GB de RAM, lo que era un problema según mis métricas:
+-----------------+----------+----------+----------+------+ | Métrica | Libre | Usado | Total | %uso | +-----------------+----------+----------+----------+------+ | RAM | +-----------------+----------+----------+----------+------+ | RAM | 137 MB | 3686 MB | 3823 MB | 97% | | Swap | 1226 MB | 821 MB | 2047 MB | 41% | +-----------------+----------+----------+----------+------+
Es decir, mucho uso de swap
. Su uso llegaba a cerca de 60%, o más, lo que me indicaba que quizá la poca RAM era una fuente de problemas.
Así que me decidí a poner un poco más de RAM, para lo cual necesitaba saber qué tipo de RAM utilizaba, para lo que corrí el comando sudo dmidecode --type 17
:
$ sudo dmidecode --type 17 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. Handle 0x000A, DMI type 17, 21 bytes Memory Device Array Handle: 0x0009 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 2 GB Form Factor: SODIMM Set: None Locator: SODIMM1 Bank Locator: Bank 0 Type: DDR3 Type Detail: Unknown Handle 0x000B, DMI type 17, 21 bytes Memory Device Array Handle: 0x0009 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 2 GB Form Factor: SODIMM Set: None Locator: SODIMM2 Bank Locator: Bank 1 Type: DDR3 Type Detail: Unknown
Es decir, la laptop tenía dos ranuras de RAM, cada una de 2GB cada una. Y cada memoria era tipo SODIMM, con velocidad DDR3.
Ahora bien, ¿debería comprar 8 o 16GB? Dependía del modelo de la laptop, según el fabricante, por lo que tuve que obtener los datos previo a mi compra, ejecutando inxi --full
:
$ inxi --full System: Host: brook Kernel: 5.15.0-58-generic x86_64 bits: 64 Console: pty pts/0 Distro: Linux Mint 21 Vanessa Machine: Type: Laptop System: Sony product: SVE14115FLP v: C10FAAY2 serial: <superuser required> Mobo: Sony model: VAIO serial: <superuser required> UEFI-[Legacy]: Insyde v: R0220E5 date: 09/26/2016 Battery: ID-1: BAT1 charge: 17.6 Wh (100.0%) condition: 17.6/45.0 Wh (39.0%) volts: 3.9 min: 10.8 CPU: Info: dual core model: Intel Core i5-2450M bits: 64 type: MT MCP cache: L2: 512 KiB Speed (MHz): avg: 1069 min/max: 800/3100 cores: 1: 832 2: 1264 3: 816 4: 1364 Graphics: Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics driver: i915 v: kernel Device-2: Chicony USB2.0 Camera type: USB driver: uvcvideo Display: server: X.org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: X: loaded: modesetting unloaded: fbdev,vesa gpu: i915 tty: 119x34 Message: GL data unavailable in console. Try -G --display Swap: ID-1: swap-1 type: file size: 2 GiB used: 821.7 MiB (40.1%) file: /swapfile Info: Processes: 244 Uptime: 14d 12h 42m Memory: 3.73 GiB used: 1.71 GiB (45.9%) Init: systemd runlevel: 5 Shell: Bash inxi: 3.3.13
Removí información innecesaria. El punto es que el procesador es un Intel i5-2450m. El máximo de memoria para el procesador es 16GB, así que solo necesitaba confirmar que el modelo SVE14115FLP de Sony VAIO aceptaba lo mismo.
De acuerdo a Crucial, son 16GB. Así que, ya está. Compré 16 GB de RAM.
Tras el reemplazo, tengo lo siguiente:
# dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. Handle 0x000A, DMI type 17, 21 bytes Memory Device Array Handle: 0x0009 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: SODIMM Set: None Locator: SODIMM1 Bank Locator: Bank 0 Type: DDR3 Type Detail: Unknown Handle 0x000B, DMI type 17, 21 bytes Memory Device Array Handle: 0x0009 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: SODIMM Set: None Locator: SODIMM2 Bank Locator: Bank 1 Type: DDR3 Type Detail: Unknown
Dos tarjetas de 8 GB, para un total de 16GB, como se ve en mi nuevo resumen (el cual es obtenido y procesado de cat /proc/meminfo
):
+-----------------+----------+----------+----------+------+ | Métrica | Libre | Usado | Total | %uso | +-----------------+----------+----------+----------+------+ | RAM | +-----------------+----------+----------+----------+------+ | RAM | 160 MB | 15741 MB | 15901 MB | 99% | | Swap | 2047 MB | 0 MB | 2047 MB | 1% | +-----------------+----------+----------+----------+------+
Por último, se supone que se recomienda al menos 4 GB de swap
, según Red Hat. En otros recursos, la recomendación es 8 GB.
Por lo tanto, como último paso de la mejora, aumentaré el espacio de swap
, de 2 a 8 GB. Primero, confirmar que uso un swapfile con swapon
:
$ swapon NAME TYPE SIZE USED PRIO /swapfile file 2G 780K -2
Dado que apunta a /swapfile
, podemos cambiar el tamaño del archivo a:
sudo swapoff -a sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 sudo chmod 0600 /swapfile sudo mkswap /swapfile sudo swapon -a
La operación con dd
tomo menos de diez minutos para completarse. Ahora, tras la ejecución de todos esos comandos, la salida de swapon
es:
$ swapon NAME TYPE SIZE USED PRIO /swapfile file 8G 0B -2
Y mis script simple para saber el consumo ahora dice:
+-----------------+----------+----------+----------+------+ | Métrica | Libre | Usado | Total | %uso | +-----------------+----------+----------+----------+------+ | RAM | +-----------------+----------+----------+----------+------+ | RAM | 155 MB | 15746 MB | 15901 MB | 100% | | Swap | 8191 MB | 0 MB | 8191 MB | 0% | +-----------------+----------+----------+----------+------+
Que es mucho mejor que el swap con más de 60% de uso.