Bonjour,
Nous avons une flotte d'une quarantaine de véhicules (autobus) équipés d'un dispositif qui enregistre les infos du CAN FMS (c'est un bus électronique sur lesquelles toutes les infos du véhicule circulent : vitesse, kilométrage, tours moteurs etc).
Les données sont récupérées par Wifi lorsque les véhicules sont chez nous et sont intégrées dans une base Postgresql 8.4.8 hébergée sur une machine virtuelle Debian 6.0.
L'hôte est un hyperviseur Xen (2 Xeons 4 core récents cadencés à 2.4ghz, 16 GO RAM), qui alloue 2 coeurs et 4 GO de RAM à la machine virtuelle. Le stockage se fait sur un SAN partagé par plusieurs machines virtuelles (une dizaine).
Sachant que nos enregistreurs remontent une donnée par seconde, qu'il y a 40 véhicules et qu'on les exploite environ 15h par jour on atteint déjà plus de 100 millions de lignes dans trois des tables de la base, et la moindre requête pour obtenir le kilométrage quotidien d'un véhicule s'exécute en pas moins de 3 minutes.
La base va continuer à grossir (elle fait un peu moins de 100GO là), et on va sans doute rajouter une dizaine de véhicules d'ici un an. Les performances sont mauvaises, mais vu la configuration c'est normal.
Le stockage est clairement le goulot d'étranglement. On a imaginé 2 solutions pour y palier, sachant qu'on a un budget très faible : c'est pour faire des stats, c'est pas un projet vital. Un down serveur n'est pas impensable, tant qu'on ne perd pas de données.
- monter un serveur dédié à partir de composants grand public : processeur de monsieur tout le monde, ram non ecc/registered, disques SATA en raid logiciel etc.
- installer un contrôleur RAID supplémentaire avec des disques SAS dans un des hyperviseurs et y placer la base dessus. A voir si on peut y rajouter de la RAM aussi.
Dans tous les cas des disques SSD se justifieraient ils, ou le simple passage à un "vrai" stockage (par rapport au SAN) va améliorer spectaculairement les perfs de la base ?
Vous en pensez quoi ? Vous voyez d'autres solutions ?
edit : je viens de me rendre compte que notre base n'utilise pas ou très peu d'index (juste sur les clés primaires). N'étant pas DBA de formation, ce détail m'avait échappé, surtout que je connais assez peu l'utilisation des index.C'est sans doute une piste à creuser.
Partager