Benchmark MySQL RPS OVH vs Kimsufi OVH vs GANDI
le 6 novembre 2009 à 12:03 par mrbooPar curiosité, je viens de faire passer une série de tests aux bases de données de différents serveurs :
- RPS OVH : 1 CPU, 512 Mo de ram, disque réseau bridé à 1 Mo/s (offre de base)
- Kimsufi OVH : 1 CPU, 2 Go de ram, 1 disque SATA (offre de base)
- 1 part Gandi : Serveur virtualisé, 1 « CPU », 256 Mo de ram (bust à 2 Go), disque réseau
- 1 dédié Nexen (principal serveur d’Hellotipi) : double Xeon dual-core, 4 Go de ram, disques RAID hardware SCSI 10k
Ce billet fait suite à celui-ci et a pour but d’essayer de comprendre pourquoi le petit Gandi sur lequel tourne ce blog sature de temps en temps.
Chaque test a été effectué une dizaine de fois, le serveur Nexen est en production avec pas mal de traffic dessus, ce qui a surement eu un impact.
Benchmark n°1
Ici on va tester la réactivité du moteur MySQL (sans se soucier de l’accès à de vrais données)
Une simple commande dans la console MySQL :
SELECT BENCHMARK(1000000,ENCODE( »bonjour », »au revoir »));
Voici ce que ça donne (le chiffre le plus bas est le meilleur) :

La part serveur Gandi confirme sa très faible puissance (pendant le test 30% du CPU sont trustés par MySQL ainsi que 20% de la ram) le RPS et le Kimsufi avec des puissances proches ont des perf comparables.
Forcément le Nexen avec un CPU plus puissant s’en tire le mieux.
Benchmark n°2
Cette fois-ci on va créer, via un micro script PHP, 1000 lignes de texte dans une table de test (au finish la table fait ~1,5 Mo ce qui est courant pour un blog)
Voici ce que ça donne (le chiffre le plus bas est le meilleur) :

Le RPS OVH est complètement à la rue avec une moyenne de 70 secondes, comptez 6 secondes pour la part Gandi, 1 seconde pour le Kimsufi et 0,4 secondes pour le dédié Nexen.
Le bridage du RPS pose un vrai problème sur les temps d’écriture. La part Gandi montre une fois de plus, avec des temps qui oscillent entre 2,5s et 9,5s que son disque réseau a un comportement erratique.
Benchmark n°3
Cette fois-ci on va faire un « SELECT * FROM test WHERE text LIKE ‘%mot%’ ORDER BY RAND() » le « mot » étant pioché au hasard dans un dico, 100 fois, le tout sur la table précédemment remplie.
Voici ce que ça donne (le chiffre le plus bas est le meilleur) :

Cette fois-ci c’est Gandi qui souffre avec plus de 8 secondes, là ou le RPS est à 3,3s, le Kimsufi à 2,7s et le Nexen à 2s.
Quelques déductions:
L’hébergement correct d’un blog demande une base de données réactive : Wordpress est gourmand en requêtes (sans compter les plugin !)
Mettre un cache en ram c’est bien, mais si votre blog tombe lors du rafraichissement du cache cela ne sert pas à grand chose… (et quand un crowler passe sur le blog ça arrive facilement)
Selon moi, les deux offres low cost (RPS et Gandi) sont, chacune à leur manière, trop short pour un blog avec un minimum de trafic (~1000 visiteurs par jour) :
Le RPS rame à l’écriture comme jamais, imaginez ce que ça peut donner lors de la publication d’un billet ou d’un commentaire…
A l’inverse, la part Gandi se met dans les cordes lors de la lecture, ce qui est tout aussi pénalisant pour un blog, mais pour le coup un cache en ram a du sens. (par contre il me fait de temps en temps un « timeout » que j’ai du mal à cerner)
Finalement, pour 30€, un Kimsufi d’entrée de gamme me semble la meilleure solution pour un blog qui nécessite le passage à un serveur dédié.
Son seul défaut vient de son unique disque SATA, prévoir un backup sérieux et régulier du blog.
UPDATE :
La R&D de Gandi m’a envoyé par email les résultats du premier benchmark, en faisant varier le nombre de « parts » de serveur, on y voit tout de suite l’avantage de cette flexibilité :
Pour info je t’ai benché le processeur en 2/3/4/8 parts pour select BENCHMARK(1000000,ENCODE( »bonjour », « au revoir »));
C’est 2s à 1 part,
1s à 2 parts,
0.75s à 3 parts,
0.55 à 4 parts,
0.48 à 8 parts, car on utilise qu’un CPU – pour faire mieux ensuite, il faut les lancer en parallèle











6 novembre 2009 à 12:49
Moi qui utilise un Gandi depuis assez longtemps ton article m’est très utile ! As-tu utilisé l’offre de base gandi AI ou as-tu paramétrer ton propre serveur sous une distrib de ton choix ? Car gandi AI à quelques problèmes connus..
Comparer un kimsufi à 30€ avec 1 seule part gandi n’est ce pas un peu sévère ? Pour le même prix ont peux avoir 2 ou 3 parts serveurs chez gandi.. quid des perf dans ce cas là ?
Personellement j’utilise entre 2 et 6 parts chez gandi selon mes besoins en ressources, j’ai activé gandi flex pour ajouter des parts automatiquement lorsque mon serveur à des pics de montée en charge.
En tout cas merci pour ces benchmarks
)
6 novembre 2009 à 17:28
Merci pour ce comparatif fort intéressant ! Malheureusement, j’ai vu « in vivo » les limites de l’hébergement gandi puisque j’ai mis pas loin de 3 heures entre le moment où j’ai pu lire le billet dans GG Reader et entre le moment où j’ai réussi à charger la page (erreurs en permanences).
Sinon, je serai du même avis que @Salya, n’est-ce pas trop sévère de comparer 1 seule part de Gandi à un Kimsuf à 30€ ?
6 novembre 2009 à 17:47
Merci pour le test, ça ne s’en sort pas si mal une part
Juste deux petits commentaires:
- l’offre gandi n’est pas lowcost, mais bien flexible, comme le fait justement remarquer Salya
- WP consomme énormément de cpu – 30% dans ton test c’est effectivement ce qu’on autorise sur une part gandi sans flex/burst. Le temps du premier bench (la mémoire n’a aucun impact dans ce cas) est effectivement lié aux performances du CPU.
Pour les deux derniers tests, 1.5M, tout devrait être dans le cache du VFS. Tu rebootes, pour le vider, tu drop_caches ? Ou c’est order by rand() et le like qui consomment du … CPU ?
Il serait intéressant d’avoir un profile système du test pour en tirer un peu plus d’infos (I/Os vs CPU, status des pages en cache, état de la RAM). Comparer les plans d’execution des queries mysql sur les différentes machines, avoir l’iostat/vmstat pendant la durée du test.
En conclusion, je te rejoins, 1 part pour un « gros site » peut être léger, bien qu’une distrib récente et une config légère puisse aider un peu. A moins d’alléger aussi le php qui fait tourner tout ça.. ?
6 novembre 2009 à 18:05
Et puis bon, quand on voit le code de wordpress il ne faut pas s’étonner : son code fait à la va-vite est gourmand en ressource.
Je pense aussi qu’il faille faire des tests avec un peu plus de rigueur « scientifique » pour trancher définitivement.
6 novembre 2009 à 18:51
Salya> je suis toujours sur la distrib Gandi (en root), j’ai la flemme mais il faudrait que je repasse sur une Debian.
)
En effet l’aspect flex est un vrai plus (mea culpa
Wave France> mes sites hébergés sur cette part Gandi étaient inaccessibles suite à une mauvaise config de mpm de ma part, disons que la config par défaut pausait problème et que mes modifs n’ont rien arrangé.
Je viens de rechanger les paramètres et cela semble ronronner.
pascal> le test en PHP n’incluait pas WP (qui est clairement un gros bébé)
Les données des select étant en random je ne pense pas que le cache MySQL ait fonctionné ?
+1 pour la distrib
Phil> en effet, loin de moi l’idée d’avoir un avis définitif à travers ces quelques bench, disons que je souhaitait y voir un peu plus clair.
6 novembre 2009 à 23:05
Merci pour ces stats qui à défaut d’être à prendre telles quelles ont au moins l’avantage de comparer plusieurs offres disponibles
Je pense également qu’un des gros avantages de l’offre Gandi, c’est sa très grande flexibilité.
J’ai aussi le sentiment – peut-être subjectif – que l’équipe Gandi à l’avantage de l’écoute/disponibilité par rapport à beaucoup d’autres hébergeurs.
Pour suivre leur hébergement depuis ses prémices (à titre perso et aussi en éventuel « rechange » pour le boulot), je les trouve réactifs et communicants (esprit assez communautaire – dans le bon sens du terme – avec des moyens professionnels).
Le choix de l’hébergement sera ensuite surtout à faire selon les besoins … et là la possibilité de faire monter immédiatement et pour des durées très brèves les parts chez Gandi est loin d’être négligeable
7 novembre 2009 à 0:08
Comparer une part à trois fois son équivalent, qui lui ne peut évoluer dans les deux sens pour s’adapter à toutes les situations … il nous reste encore bien du chemin à faire pour expliquer les avantages de nos choix.
Heureusement les commentaires me rassurent, eux.
Dans tous les cas, merci (sincèrement) de votre intérêt
7 novembre 2009 à 9:20
GillesM> Je confirme, équipe de Gandi est vraiment à l’écoute : suite à mon précédent billet j’ai reçu quelques mails de leur R&D pour discuter. J’ai aussi eu quelques tweet, et désormais un commentaire
C’est pour cela que je continue à essayer de faire tourner mon blog chez eux, l’ambiance est bonne et finalement il ne s’agit que d’un blog perso.
Dans le même esprit, il y a quelques année j’ai choisi Nexen, non seulement parce qu’ils sont sérieux mais surtout parce qu’il ont une vraie qualité de service clients pour leurs dédiés.
Stephan> ne te méprends pas : je suis très content du service Gandi
Disons que WP et une part Gandi n’est pas forcément une équation évidente, mais cela semble possible : mon blog semble stable depuis mes derniers réglages.
Si je compare c’est aussi car l’aspect « budget d’un serveur entrée de gamme » a son importance dans le cadre de l’hébergement d’un blog perso.
Vous avez des benchmark de montée en charge d’un WP sur GandiAI avec le système flex ?
7 novembre 2009 à 13:53
Mais c’est bien sûr !!!! (François, faut-il t’aimer pour survivre aux billets de barbus
)