di Mark Nielsen L´autore: L'autore lavora presso The Computer Underground, Inc. come guru di Linux e si diverte a fare cose folli e a realizzare progetti folli in quanto, ehi, si SUPPONE che i computer siano divertenti! Mark lavora anche alla ZING, www.genericbooks.com come volontario per aiutare a promuovere software e scritti liberi e aperti. Contenuto: |
Sommario:
Questo articolo mostra come velocizzare un server di database PostgreSQL usando un RAMDISK.
Un ramdisk � sostanzialmente memoria che viene usata come se fosse un disco fisso. Ogni volta che si usa un ramdisk, in realt� si usa memoria e non un disco fisso. Cos� facendo si hanno dei vantaggi e degli svantaggi. Il grosso vantaggio � che, usando memoria, tutte le operazioni che si fanno sono molto pi� veloci in quanto i dischi rigidi sono pi� lenti della memoria. Il grosso svantaggio � che se si fanno modifiche al server di database e si riavvia il computer, tutte le modifiche vengono perse.
Per quanto riguarda il server di database PostgreSQL, caricando tutti i database in memoria, se ne aumenter� la velocit�.
mkdir -p /Test mkfs -t ext2 /dev/ram0 mount /dev/ram0 /TestSe questo non funziona potreste non avere il supporto per i ramdisk compilato nel Kernel. CONFIG_BLK_DEV_RAM � l'opzione di configurazione del Kernel che vi serve per attivarlo.
I comandi qui sopra creano un ramdisk con uno spazio disponibile di poco meno di 4Mb. Date un'occhiata all'Articolo sui Ramdisk per sapere come cambiare la dimensione a, per esempio, 50Mb.
NOTA: Si assume che abbiate inserito nel lilo.conf l'opzione del ramdisk per cambiarne la dimensione in modo che sia maggiore di quella dei vostri database. Per saperne la dimensione approssimativa, date il comando "cd /var/lib/pgsql; du ".
In ogni modo, per spostare il server installato in "/var/lib/pgsql" e metterlo in memoria, fate cos�:
### Ferma il server postgresql /etc/rc.d/init.d/postgres stop ### rinomina la directory attuale mv /var/lib/pgsql /var/lib/pgsql_main #### Crea una directory su cui montare il ramdisk mkdir -p /var/lib/pgsql_memory #### cambia il proprietario della nuova directory in postgres o qualunque #### sia il proprietario attuale chown postgres /var/lib/pgsql_memory #### Crea un collegamento al nome originario, /var/lib/pgsql ln -s /var/lib/pgsql_memory /var/lib/pgsql #### Formatta il ramdisk mkfs -t ext2 /dev/ram0 #### Monta il ramdisk nella directory di postgresql mount /dev/ram0 /var/lib/pgsql_memory #### Copia tutto dalla directory principale nel ramdisk tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp ### Riavvia il server postgresql /etc/rc.d/init.d/postgres start
Ho notato che quando i dati si trovano nelle cache del sistema il guadagno di performance non � alto, circa il 10% o 20%. Quando ci sono molti dati distinti che vengono inseriti nel database, la performance cresce tantissimo.
Il pi� grosso vantaggio con il trucco del ramdisk � che si forza la permanenza del database in memoria e si evita di usare il disco fisso. Se non si usa il ramdisk, non pu� accadere che il database esca dalla cache e che quando viene usato nuovamente sia necessario ricaricarlo dal disco fisso.
Sito web mantenuto dal Team degli Editori di LinuxFocus
© Mark Nielsen LinuxFocus 1999 |
Informazioni sulla traduzione:
|
1999-12-01, generated by lfparser version 0.7