Sommaire Carte Index Recherche Nouvelles Archives Liens A propos
[Barre Superieure]
[Barre Inferieure]
[Photo de l'Auteur]
par Mark Nielsen

L´auteur:

L'auteur travaille � Computeur Underground Inc, en tant qu'expert Linux. Il adore faire des choses ridicules et �laborer des projets ridicules, parce que... Eh! Les ordinateurs sont SUPPOSES �tre cools. Mark travaille aussi � ZING, www.genericbooks.com o� il s'est propos� comme volontaire pour promouvoir le logiciel libre, la libre circulation des sources ainsi que toute la litt�rature correspondante.

Sommaire:

Acc�l�rer des petites bases de donn�es sous Linux

[Illustration]

Résumé:

Cet article montre comment acc�l�rer une base de donn�es PostgreSQL en utilisant la RAM.



 

Introduction

Bon, qu'est ce que la RAM? Comment pouvons nous l'utiliser de mani�re � acc�l�rer un serveur de donn�es tel que PostgreSQL?

La RAM est en fin de compte de la m�moire que vous utilisez comme un disque dur. Chaque fois que vous vous en servez, vous court-circuitez l'enregistrement sur votre disque dur. En fait, quoique vous fassiez en utilisant la RAM, cela sera beaucoup plus rapide car l'acc�s au disque dur est plus lent. Mais son inconv�nient majeur r�side dans le fait que les changements effectu�s sur le serveur de la base de donn�es seront enti�rement perdus si vous reboutez votre ordinateur.

Pour le serveur de donn�es, PostgreSQL, si vous chargez toutes les bases de donn�es dans la m�moire, vous allez augmenter la rapidit� d'ex�cution.

 

Montage d'un disque de RAM dans /Test

Pour monter le r�pertoire /Test sur un point de montage d'un disque de la RAM, il faut faire:

mkdir -p /Test
mkfs -t ext2 /dev/ram0
mount /dev/ram0 /Test

Si cela ne marche pas, c'est que vous n'avez pas compil� le noyau avec l'option supportant la RAM.
Pour la configuration du noyau, il faut s�lectionner comme option: CONFIG_BLK_DEV_RAM.

Les commandes ci-dessus ne vous permettent que d'avoir un peu moins de 4Mb de RAM pour le point de montage. Jetez un coup d'oeil � l'article "Ramdisk" pour voir comment obtenir 50Mb.

 

Utiliser la RAM pour PostgreSQL

L'id�al serait que vous ayez 2 serveurs de bases de donn�es. Le premier o� vous ferez vos modifications. Le deuxi�me serait une copie plac�e dans la RAM. Pour ce faire, vous utiliserez des commandes comme "pg_dump" ou "pg_dumpall"

REMARQUE: Nous supposons que vous avez mis dans votre fichier lilo.conf, l'option pour avoir un disque de RAM plus gros que le serveur de la base de donn�es. Si vous avez besoin de conna�tre la taille approximative, passez la commande "cd /var/lib/pgsql ; du"

Malgr� tout, pour avoir votre serveur PostgreSQL courant install� dans le r�pertoire "/var/lib/pgsql" et pour qu'il soit mont� sur la RAM vous devez taper:

     ###Arr�t du serveur PostgreSQL courant
/etc/rc.d/init.d/postgres stop
     ###Changement de nom du r�pertoire pgsql
mv /var/lib/pgsql /var/lib/pgsql_main
     ###Cr�ation d'un r�pertoire pour monter la RAM
mkdir -p /var/lib/pgsql_memory
     ###Changement de propri�taire pour le r�pertoire pgsql_memory
     ###Le nouveau est postgre
chown postgre /var/lib/pgsql_memory
     ###cr�ation du lien sur le nom initial /var/lib/pgsql
ln -s /var/lib/pgsql_memory /var/lib/pgsql
    
     ###Formatage du disque de la RAM
mkfs -t ext2 /dev/ram0
     ###Montage du disque sur le r�pertoire de Postgresql 
mount /dev/ram0 /var/lib/pgsql_memory
    
    ###Recopie de tout le r�pertoire principal dans la RAM
tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp
    ###D�marrage du serveur courant Postgresql
/etc/rc.d/init.d/postgres start
 

Commentaires sur la rapidit�

J'ai essay� de tester la rapidit� avec ou sans PostgreSQL dans la RAM. Il est parfois 50% plus rapide, d'autre fois non.

J'ai remarqu� que, lorsque le syst�me met des donn�es dans la m�moire cache, le gain n'est pas �norme: approximativement 10 ou 20%. Lorsqu'il y a beaucoup de donn�es isol�es qui doivent recherch�es dans la base (de donn�es), les performances croissent incroyablement.

Le plus grand avantage avec l'astuce de la RAM consiste dans le fait de forcer la base de donn�es � rester en m�moire en �vitant d'utiliser le disque dur. Si vous n'employez pas cette m�thode, in�vitablement, les donn�es vont sortir de la RAM, il vous faudra alors, au moment de les r�utiliser, les recharger � partir du disque dur.

 

Commentaires

  1. En ce qui concerne le syst�me d'exploitation Linux, Il semble qu'une fois le fichier lu, ce dernier est gard� en m�moire jusqu'� ce qu'autre chose vienne le remplac�. Bon, cela me semble �tre une bonne solution si ce n'est qu'� chaque fois que mon serveur de base de donn�es est sollicit�, j'entends mon disque dur tourner. En utilisant la RAM, le serveur de donn�es est forc� de rester en m�moire: il ne peut pas "s'�chapper". Si vous devez beaucoup utiliser votre base de donn�es, je vous conseille cette m�thode.
  2. Les avantages de l'utilisation de la RAM sont: la rapidit�, la clart�, la simplicit�. Si les bases de donn�es ne sont exploit�es qu'en lecture, c'est vraiment cool.
  3. Les inconv�nients sont que vous devez savoir comment la maintenir et si vous apportez des changements soyez s�r d'en avoir fait des sauvegardes.
 

R�f�rences

  1. Comment utilisez la RAM sous Linux par Mark Nielsen par Mark Nielsen
  2. Site de PostgreSQL

Site Web maintenu par l´équipe d´édition LinuxFocus
© Mark Nielsen
LinuxFocus 1999

1999-11-15, generated by lfparser version 0.7