Sfruttare la ram oltre 1 Gb su Linux 32bit

RAM PC OCZ Platinum DDR400 2×1024 Dual Channel CL 2-3-2-5 XTC EdictionRiporto qui un post comparso sul blog di O.S.Revolution datato 24 settembre. L’argomento non viene scandagliato a fondo, ma questo post può essere un buon punto di partenza per molti, quindi merita di essere letto.

Questo articolo è rivolto a chi avendo installato 2 o più Gigabyte di ram su una distro Linux a 32bit, si trova ad affrontare il problema di mancanza di ram, causa inutilizzo della stessa da parte del sistema. Prendo spunto da un articolo apparso su Linux.com su come sfruttare la ram oltre 1 GB sul pinguino a 32bit, io almeno da 2 anni compilo il mio kernel con questa feature abilitata.

Nell’articolo spiega a grandi linee il perché ancora oggi questa opzione non viene abilitata di default sui kernel principali delle distro, almeno non su tutte. Il fattore principale è altamente tecnico e cioè i sistemi a 32bit non sono in grado di sfruttare più di 1 Gb di ram, ma vedremo che a questo esiste una soluzione già da tempo e consiste nell’usare la differenza come memoria virtuale, questa differenza viene rimappata, il tutto usando un kernel compilato con questa feature.

Bene ricordo che il supporto per la HIGHMEM ha due opzioni possibili, da oltre 1 GB a 4 GB bisogna abilitare la HIGHMEM4G, oltre 4 GB sino a 64 GB invece si deve abilitare la HIGMEM64G. Prendendo come esempio i kernel Debian ricordo che il supporto fino a 4 GB è dato dai kernel 686 (linux-image-2.6-686) mentre quello fino a 64 Gb dal kernel 686-bigmem (linux-image-2.6-686-bigmem), quelli invece della serie *-486 o addirittura inferiori, non hanno questa feature inserita quindi risulta settata su “off” . Usando un kernel di questa serie (486) la vostra ram eccedente ad 1 GB non verrà assolutamente sfruttata dal Sistema!

Nel caso qualcuno voglia ricompilarsi il kernel, ricordo che le voci da settare si trovano in “Processor type and features” alla voce “High Memory Support”.

Screenshot di make menuconfig (step 1) Screenshot di make menuconfig (step 2)

Un controllo veloce su qualsiasi kernel è possibile farlo grep-ando il file di configurazione, vi mostro il mio avendo 2 Gb ram:

$ egrep -i highmem /boot/config-$(uname -r)
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
in caso contrario installate un kernel elencato prima o ricompilato con queste opzioni.

Condivido

Leave a comment