Analizando la memoria en GNU/Linux

Publicado el Martes, 25 de enero de 2011

El fin de semana le compré 2GB de memoria más a mi computadora Hoth. Tenía un solo dim de 2GB hasta ahora, con un procesador AMD Athlon 64 X2 Dual Core 5600+.

Hacía meses que estaba por hacerlo, ya que venía andando bastante mal. Si bien estoy usando ArchLinux - un cambio que implicó mejoras en el rendimiento - aparentemente uso demasiadas aplicaciones al mismo tiempo.

Varias personas me comentaron que al usar una arquitectura de 64 bits, era conveniente tener al menos 4GB para que la computadora rindiera. Estoy muy oxidado en lo que respecta a arquitecturas de computadoras, así que me considero bastante ignorante en el tema del hardware.

Un tema que sí notaba, es que el sistema accedía mucho a la memoria Swap. Y algo que sí sé de hardware, es que la lectura y escritura en el disco duro es el proceso más lento en los componentes de memoria.

Dim DDR2 2GB

Dim DDR2 2GB

Hay un par de aplicaciones en la línea de comando de GNU/Linux que nos permiten obtener información interesante sobre la memoria de nuestra máquina. La primera es free. Con el parámetro -m, podemos ver los valores en megabytes. Así estaba mi computadora antes de la instalación del nuevo dim:

[fernando@hoth ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          1754       1711         42          0         30        196
-/+ buffers/cache:       1485        268
Swap:         1906        390       1515

Otro comando nos ayuda a determinar qué tipo de memoria tenemos en la computadora: sudo dmidecode --type memory. Antes de comprar la memoria siquiera, podemos fijarnos el tipo de memoria, y otros datos:

# dmidecode 2.11
SMBIOS 2.5 present.

Handle 0x0027, DMI type 16, 15 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 8 GB
	Error Information Handle: Not Provided
	Number Of Devices: 4

Handle 0x0029, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x0027
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 72 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM0
	Bank Locator: BANK0
	Type: DDR2
	Type Detail: Synchronous
	Speed: 333 MHz
	Manufacturer: Manufacturer0
	Serial Number: SerNum0
	Asset Tag: AssetTagNum0
	Part Number: PartNum0

Handle 0x002B, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x0027
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: DIMM
	Set: None
	Locator: DIMM1
	Bank Locator: BANK1
	Type: SDRAM
	Type Detail: None
	Speed: Unknown
	Manufacturer: Manufacturer1
	Serial Number: SerNum1
	Asset Tag: AssetTagNum1
	Part Number: PartNum1

Handle 0x002D, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x0027
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: DIMM
	Set: None
	Locator: DIMM2
	Bank Locator: BANK2
	Type: SDRAM
	Type Detail: None
	Speed: Unknown
	Manufacturer: Manufacturer2
	Serial Number: SerNum2
	Asset Tag: AssetTagNum2
	Part Number: PartNum2

Handle 0x002F, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x0027
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: DIMM
	Set: None
	Locator: DIMM3
	Bank Locator: BANK3
	Type: SDRAM
	Type Detail: None
	Speed: Unknown
	Manufacturer: Manufacturer3
	Serial Number: SerNum3
	Asset Tag: AssetTagNum3
	Part Number: PartNum3

Como ven, este comando despliega cuántos puertos tenemos, la capacidad máxima de memoria de nuestro motherboard, y qué dims tenemos instalados además de informacion detallada de cada uno. Importante saber antes de comprar un nuevo dim.

Ahora que tengo estos 4GB, el sistema vuela. Se nota que no tiene que usar el disco para la memoria de intercambio, y con las mismas aplicaciones ejecutándose, la Ram se mantiene poco más de la mitad y apenas un poco de memoria swap. En este momento ejecutando: Icecat con 28 pestañas, 2 instancias de Hotot (una para Twitter y otra para Identi.ca), Amarok, Kopete, Dolphin, Emacs y Yakuake, el sistema no muestra ninguna lentitud.

Mirando la memoria libre con free, pueden ver que apenas se está usando la ram del swap:

[fernando@hoth ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3706       3575        131          0         59        778
-/+ buffers/cache:       2737        969
Swap:         1906          7       1898

Y la información del nuevo dim con sudo dmidecode --type memory:

Handle 0x002B, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0027
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 72 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM1
        Bank Locator: BANK1
        Type: DDR2
        Type Detail: Synchronous
        Speed: 333 MHz
        Manufacturer: Manufacturer1
        Serial Number: SerNum1
        Asset Tag: AssetTagNum1
        Part Number: PartNum1

Lo que me queda por comprar ahora, como detalle final, sería una placa de video. Tengo una ATI integrada, por lo que obtiene memoria de la Ram. Además, me gustaría tener una placa nVidia ya que sus drivers son muy superiores a los de ATI en GNU/Linux. Veremos si más adelante encuentro que vale la pena la inversión...

En cuanto a la memoria, 4GB debería ser suficiente memoria para cualquiera... ¡Sí, claro!

Ya conocía free desde hace un tiempo, pero dmidecode lo descubrí hace poco. Así que aprovecho para compartir esta info por acá por si a alguien más le resulta útil (y para tener a mano cuando me olvide...).

7 comentarios en este post

Feed de comentarios
  1. Avatar

    José Arrarte 25 enero. 2011 - 10:35

    Fernando, considera utilizar un kernel de 32 bits con PAE (Physical address extensions) en lugar de uno de 64 bits. Varios paquetes están más estables en distribuciones de 32 bits (y además, te ahorras algunos megas por tener tipos de datos más chicos).

    Escribí sobre esto en
    http://josearrarte.com/blog/2009/08/30/64gb-de-ram-en-un-sistema-operativo-de-32-bits/

    Lo jodido puede ser compatibilidad con ciertos drivers, y que cada proceso está limitado a direccionar un espacio de memoria de 32 bits.

    Saludos!

    • Avatar

      Fernando 27 enero. 2011 - 01:21

      ¡Gracias por el tip! No tenía ni idea.

      Por ahora venía lo más bien en cuanto a paquetes de 64 bits. No he tenido problemas de compatibilidad por el momento con drivers y demás. A veces me pasaba de querer instalar una aplicación muy nueva, y generalmente no reparten paquetes de 64, y hay que compilar. ArchLinux te hace bastante fácil compilar en caso de ser necesario. Generalmente no lo es, ya que se encuentra un paquete para casi cualquier aplicación en i686 y x86_64 en los repositorios mantenidos por la comunidad de usuarios.

      El problema que tenía era con la memoria al ir ejecutando muchas aplicaciones. Pero con esta actualización, está funcionando perfecto. Y no he llegado a “saturar” tanto la ram como para que use mucho la swap. Por ahora voy a seguir usando el kernel de 64, pero de ahora en más tengo en cuenta los kernel con PAE.

      Saludos!

  2. Avatar

    dklight 1 febrero. 2011 - 18:20

    Sos conciente de que estás consumiendo una real grosería de memoria? Asociar directamente que el sistema sea de 64 bits con que necesites 4G de memoria es un disparate. La memoria depende pura y exclusivamente de lo que uses, y por las aplicaciones que describís, no me extraña.

    Queda claro que los programas salen cada vez peor. La gente sigue haciendo más o menos las mismas cosas. La lectura de emails, o escribir documentos de texto, planillas de calculo, etc no ha cambiado mucho en los últimos 10 años, y sin embargo necesitamos más de 15 veces la memoria que usabamos por aquel entonces. Acordate que 3 tipos fueron hasta la luna y volvieron sanos y salvos con menos de una Comodore64. Y nosotros necesitamos semejante grosería de equipo para llevar adelante nuestras tareas diarias?

    Yo por mi parte tengo 512M, y me hé propuesto tirar con este laptop (que ya tiene 2 años) por otros 8 años más. Cuándo cambiar mi máquina lo voy a decidir yo, no el mercado…

Dejar un comentario

Toasty!