por Mark Nielsen Sobre el Author: El autor trabaja en The Computer Underground, Inc. como experto en Linux y se divierte haciendo tonterias y proyectos tontos, porque, �vaya!, los ordenadores SE SUPONE que son divertidos. Mark tambi�n trabaja en ZING, www.genericbooks.com como voluntario para ayudar y promover el software y las publicaciones libres y abiertas. Contenidos: |
Resumen:
Este art�culo muestra como acelerar un servidor de bases de datos PostgreSQL usando un disco ram (RAMDISK).
Un ramdisk es b�sicamente memoria que pretendes usar como si fuera una unidad de disco duro. En cualquier momento que usas un ramdisk, b�sicamente est�s usando tu memoria y no tu disco duro. Hay ventajas y desventajas de esta aproximaci�n. Fundamentalmente, la gran ventaja es que dado que est�s usando memoria, cualquier cosa que est�s haciendo ser� mucho m�s r�pida dado que el disco duro es m�s lento que la memoria. La gran desventaja es que si haces cambios en el servidor de bases de datos y reinicias el ordenador, perder�s todos los cambios.
En el caso del servidor de bases de datos PostgreSQL, podr�s aumentar la velocidad si colocas todas las bases de datos en memoria.
mkdir -p /Test mkfs -t ext2 /dev/ram0 mount /dev/ram0 /TestPara cambiar el tama�o del ramdisk a 50MB, haz lo siguiente:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda2 read-only ramdisk=50000
mkdir -p /Test mkfs -t ext2 /dev/ram0 mount /dev/ram0 /Test
Si hubieses a�adido esas 3 lineas al fichero /etc/rc.d/rc.local, se ejecutar�an cada vez que arrancases el ordenador.
NOTE: Aqu� asumiremos que tu has fijado la opci�n "ramdisk" en el lilo.conf a un tama�o mayor del que tiene tu servidor de bases de datos. Si necesitas averiguar el tama�o aproximado, ejecuta este comando "cd /var/lib/pgsql; du ".
De todas maneras, para coger tu servidor postgresql instalado en "/var/lib/pgsql" y ponerlo en memoria, haz lo siguiente:
### Detener el servidor postgres real /etc/rc.d/init.d/postgres stop ### Renombrar el directorio real mv /var/lib/pgsql /var/lib/pgsql_main #### Crear un directorio para tener ah� nuestro disco ram mkdir -p /var/lib/pgsql_memory #### Cambiar el propietario del nuevo directorio a posgres o cualquiera #### que sea el due�o real. chown postgres /var/lib/pgsql_memory #### Crear un alias o un enlace al nombre original, /var/lib/pgsql ln -s /var/lib/pgsql_memory /var/lib/pgsql #### Formatea el ramdisk mkfs -t ext2 /dev/ram0 #### Monta el ramdisk en el directorio postgresql mount /dev/ram0 /var/lib/pgsql_memory #### Copia todo del directorio principal al ramdisk tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp ### Arranca el servidor postgresql actual /etc/rc.d/init.d/postgres start
Lo que se puede notar es que cuando los datos son "cacheados" por el sistema, la ganancia en velocidad no es muy elevada, cerca del 10% o el 20%. Cuando se introducen muchos datos únicos dentro de la base de datos, la velocidad crece drasticamente.
La mayor ventaja del truco del ramdisk es que obligas a la base de datos a permanecer en memoria y evitas usar el disco duro. Si no usas un ramdisk, tu base de datos probablemente a la larga sea "swapeada" fuera de la caché, y entonces cuando vuelva a ser usada, tendr� que ser recargada desde el disco duro.
Contactar con el equipo de LinuFocus
© Mark Nielsen LinuxFocus 1999 |
Translation information:
|
1999-12-17, generated by lfparser version 0.6