Jeudi 30 juillet 2009
- Par Lionel Tressens

Voilà une part importante du travail des équipes techniques d'Overblog : maîtriser la consommation de ressources sur les serveurs de base de données.

Les bases de données, ce sont ces lieux de stockage de toutes les infos de vos blogs : articles, commentaires, albums, communautés, utilisateurs, configuration du blog, ...

Un serveur de base de données c'est un serveur qui coûte cher à l'achat (il est équipé de disques dur de très grande qualité, de CPU puissants, de beaucoup de mémoire) et à l'usage en consommation électrique (à cause du nombre de disques). Multiplier les serveurs de base de données est donc la dernière opération d'optimisation à faire. Avant cela il faut se pencher sur tous les éléments de la chaîne de production, depuis la requête du navigateur client en passant par les caches frontaux, les serveurs de construction des pages HTML, les clusters de type memcache et enfin les les serveurs de bases de données.

Il est vrai que la période estivale est moins chargée qu'à l'habitude mais nous sommes parvenus hier à une optimisation très poussée de l'utilisation de nos ressources en lecture sur les serveurs de bases de données. En effet, toute la production d'Overblog en lecture (affichage des blogs, non compris le portail) est désormais assurée par 2 seuls serveurs de bases de données (ce sont des octocores -8 CPU- équipés de 28 et 32 Go de RAM). Et tout ça avec une grande largesse, puisque la charge de chacun des serveurs ne dépasse pas 2.5 (la charge nominale maximale d'un octocore étant de 8). Pour autant le logiciel de bases de données (PostgreSQL 8.3) sert environ 4000 transactions par seconde (chiffre cumulé des 2 serveurs).

Pour en arriver là, il y a eu beaucoup de travail fait tout d'abord sur le plan logiciel (requêter intelligemment la base de données), sur le schéma de base (comment ranger les données intelligemment), sur la configuration des logiciels (réglage fin des paramètres de PostgreSQL pour optimiser son fonctionnement) et enfin sur l'optimisation du taux de cache kernel et logiciel sur les serveurs de base de données.
Pour ce dernier point nous essayons de séparer au mieux le trafic entrant pour que les données d'un blog soient toujours cherchées sur le même serveur de bases de données. Ainsi on augmente le taux de cache PostgreSQL sur les requêtes concernant ce blog ainsi que le taux de cache disque (géré par le kernel) lorsque PostgreSQL doit accéder aux données sur disque.


Ecrire un commentaire - Voir les commentaires - Recommander
Retour à l'accueil

Profil

  • lionel
  • : France Paris Toulouse Nîmes Pau
  • : Lionel Tressens, chef de projet et responsable technique de la plateforme Overblog. Amateur de technologies, releveur de défis

Présentation

Suivez ce blog !

  • Flux RSS des articles

Calendrier

Novembre 2009
L M M J V S D
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
<< < > >>

overblog

 
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus