Benchmark MySQL RPS OVH vs Kimsufi OVH vs GANDI

le 6 novembre 2009 à 12:03 par mrboo

Par 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) :

perf-mysql-3

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) :

perf-mysql-2

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) :

perf-mysql-1

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

9 commentaires pour “Benchmark MySQL RPS OVH vs Kimsufi OVH vs GANDI”

Aller au dernier commentaire | retourner à la racine du blog
  1. 1Salya dit :

    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 :o )

  2. 2Wave France dit :

    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€ ?

  3. 3pascal dit :

    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.. ? :)

  4. 4Phil dit :

    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.

  5. 5mrboo dit :

    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. 6GillesM dit :

    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. 7Stephan dit :

    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 :)

  8. 8mrboo dit :

    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 ?

  9. 9ophise dit :

    Mais c’est bien sûr !!!! (François, faut-il t’aimer pour survivre aux billets de barbus :) )

Aller au premier commentaire | retourner à la racine du blog |
Recevoir le flux RSS de ce blog.

Laisser un commentaire

Les commentaires de ce blog s'affichent simultanément sur le compte Twitter blogmrboo (pratique pour suivre la discussion et être prévenu des réponses à votre commentaire)



D'autres billets sur mrboo.fr :

Vu sur Twitter

Voici quelques tweets qu'il me semble intéressant de relayer ici.

@mrboo Bravo ! :o) RT @emob Weecast annonce sa levée http://bit.ly/6YgF0h
@mrboo (info Techcrunch) Les comptes premium Twitter arrivent au Japon en janvier : http://bit.ly/74kbGG
@mrboo @dauran pour jouer il faut être sur un seul PC ;o) (je rajoute 1Mpx via le MiMo en USB :D) http://twitpic.com/r5o5l

@mrboo je m'amuse vraiment beaucoup... http://twitpic.com/r5ers

@laurentbayard Pour ceux qui veulent tester le nouveau Google Search, c'est par ici => http://bit.ly/71sg0f Alors ?
@barrabe Qui n'a pas encore vu le nouveau Google? - http://google.com/ncr
@HenryMichel Au jeune qui panique a la disparition de mininova - on en a vu tomber des frères, tu sais. #napster #kazaa #shareaza #suprnova #usenet
@Sebastien_b LeMonde.fr génère 13% de son audience grâce à ses blogueurs http://tinyurl.com/yj7sypb
@GillesKLEIN bis : Twitter en bourse ? (quotidien espagnol) http://bit.ly/7H6e7L
@fbrahimi RT @naro: Récapitulatif des tests menés par Facebook sur la monnaie virtuelle http://ff.im/-c1YaK info pr @EmmanuelGadenne
@albertedenis "5 Must Have Google Chrome Extensions" http://snipurl.com/tf8dx
@LaFermeDuWeb Booster le chargement de vos pages grâce à CSS-JS-Booster: http://bit.ly/5c2U6n
@clementj Top 20+ MySQL Best Practices http://bit.ly/7OMLHV #mysql #veille
@Upsilla RT @marclolivier: Taux de transformation moyen des sites e-commerce :1,7% http://ufy.me/1a75 #FEVAD
@bhugues So cute.. "A 3 ans, il chante 'Hey Jude' des Beatles" http://www.dailymotion.com/video/x4f9uc_il-chante-hey-jude-des-beatles-a-3_fun
@ElianChrebor Made a quick test with #iPlotz (after @ryancarson tweet) - Looks like I will switch from #balsamiq - Faster, nicer library, i'm seduced...
@olivez Contributions communautaires en baisse ? Oui selon CNET sur http://bit.ly/8AjXPY. Mais le titre est misleading.
@mrboo au bureau on a commencé à se cotiser pour racheter la fnac http://twitpic.com/qqv7u

@mrboo Du grand délire... non mais franchement vous imaginez 2 sec la scène ? bande de cons http://bit.ly/4ZCoJ1
@Korben Programmez en PHP en évitant les erreurs de sécurité http://sh4ka.fr/?p=43