PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/01/2012 11:34:40

Michael REMY
Membre

quel SSD pour booster une base de données ?

bonjour,


quelqu'un a-t-il un conseil pro pour un SSD 64Go destiné à booster une base de données (postgresql81) sur un serveur ?
bien entendu, la sécurité et la qualité du disque doit  primer sur le reste (vitesse et capacité).

Est-ce vrai que dans tous les cas, un SSD apportera un gain de x10 par rapport à un disque dur ?

Si quelqu'un a déjà fait l'expérience des gains en base de données avec un SSD, qu'il partage...

bien à vous

Hors ligne

#2 16/01/2012 09:59:06

Marc Cousin
Membre

Re : quel SSD pour booster une base de données ?

Ce n'est pas vrai dans tous les cas, loin de là.

Un SSD va faire X10, voire largement plus, par rapport à un disque dur mécanique, sur les accès aléatoires. Sur le séquentiel c'est largement comparable.

Par ailleurs, vous avez bien d'autres priorités à mon avis que le SSD pour accélérer votre base:

- Passer à une version supportée de PostgreSQL
- Optimiser l'application (64Go de données, c'est vraiment peu, il est surprenant qu'une application de cette taille rame)

Ensuite, pour que le passage au SSD soit rentable, il faut vraiment être sûr que c'est le disque votre source de contention actuelle.

Et pour finir, n'oubliez pas que le SSD est rapide (~ 0.1ms de temps d'accès, ~ 200Mo/s de débit), mais qu'il est déjà beaucoup moins bon en écriture (même si les derniers disques durs compensent en bonne partie les problèmes de write amplification), donc que si votre problème c'est les performances en écriture, il n'est pas sûr que votre gain soit vraiment énorme. Les écritures (sauf pour le journal, mais c'est de l'écriture séquentielle) sont par nature asynchrones, donc peuvent être regroupées, ce qui efface une bonne partie du gain du SSD par rapport au disque dur.

Un dernier point: si vous voulez vraiment rajouter du matériel, posez vous la question de rajouter de la RAM dans votre serveur: c'est encore bien plus rapide que le SSD (1ns de temps d'accès, plusieurs Go/s de débit). Rien de tel qu'une base en cache pour avoir des requêtes rapides en lecture…

Pour l'instant on rencontre encore assez peu de SSD en production. Il faut dire que depuis leur arrivée, il y a pas mal d'histoires de données qui disparaissent totalement des disques sans laisser de nouvelles. Par exemple, il y a eu de mémoire le cas sur une des dernières séries de SSD Intel (un bug du firmware).

Sinon, si vous cherchez des modèles précis de SSD, allez regarder dans la mailing list postgresql-performance, la question y revient régulièrement.


Marc.

Hors ligne

#3 19/08/2012 23:35:25

aznur
Membre

Re : quel SSD pour booster une base de données ?

+ 1 pour la ram
mais alors la question que tout le monde se pose peu t'on dire à postgresql de chager la totalité de le base de donnee si elle n'est pas trop grosse biensur en memoire
(< a la ram quoi)
et de faire des sauvegarde reguliere sur le disque dur avant la femerture ou doit t'on passer par un ram disque et un script ?

ce qui reviendrai a

je demare le serveur 
un script cree  un ram disque et  charge la bdd entiere dans la ram
//eventuelement des sauvegarde de la bdd sur le disque dure a interval regulier  si pas d'ondulateur mais la c'est du suicide

je veux eteindre le serveur pour remplacer un ventilo par exemple

je doit avoir un script qui sauvegarde la bdd sur le disque dur avant de seteindre

sans compte sil ya une panne electrique avec un onduleur

pour sauvegarder proprement la bdd avant le drame

Hors ligne

#4 20/08/2012 07:55:20

Michael REMY
Membre

Re : quel SSD pour booster une base de données ?

merci de votre conseil.
en fait une fois la base de données vacummée manuellement à 100% et réindexées totalement elle ne prend que 120Mo.
par contre en fin de journée elle atteind le 1.2Go de données (beaucoup de choses sont supprimées, puis remis à jour).

Hors ligne

#5 20/08/2012 09:28:39

rjuju
Administrateur

Re : quel SSD pour booster une base de données ?

@aznur: Postgresql se chargera tout seul de garder en mémoire autant de données qu'il peut, selon ce qui est accédé par les utilisateurs et la quantité de mémoire partagée configurée. Ensuite, tant que l'instance est en marche, les données modifiées sont sauvegardées au fur et à mesure à la fois dans les wal (synchrone) et dans les fichiers de données (asynchrone). Il ne faut pas oublier que postgresql s'appuie fortement sur le système, et donc sur le cache disque de celui-ci. Il est généralement déconseillé de mettre plus d'1/4 de la ram en shared_buffers, car de toutes façons une partie des données se trouvera également en cache système.

@Michael: 1.2 Go reste une petite volumétrie. Par contre, le facteur 10 de croissance dans la journée est étrange. L'autovacuum est-il activé ? Si oui peut-être n'est-il pas assez aggressif.

Hors ligne

#6 20/08/2012 13:26:31

Michael REMY
Membre

Re : quel SSD pour booster une base de données ?

non l'autovacum a été désactivé car en journée, il nuit fortement à la base et ralenti le travail des collègues. c'est pour ça que je le programme la nuit, (où le fait moi-même à la mi journée)

Hors ligne

#7 20/08/2012 13:38:01

kenrio
Membre

Re : quel SSD pour booster une base de données ?

c'est pour ça qu'il vous dit de passer en 9.1, l'auto-vacuum marche très bien et ne pénalise plus le serveur

Hors ligne

Pied de page des forums