Mejora de RAM en servidor local

Publicado: 2023-02-19

Mi 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.

¿Tienes algún comentario?

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