Dans le cadre du dossier de comparatif des offres hosting VPS, j’ai testé PlanetHoster. Ils proposent différentes offres. J’ai choisis celle qui est la moins cher et sans info-gérance.
Je tiens à les remercier d’avoir accepté de mettre à ma disposition une machine pour ce test.
PlanetHoster plan 1
Détail de l’offre Medium :
- Virtualisation : KVM
- Processeurs : 1 vCore
- Mémoire : 1Go
- Espace disque 10 Go (SSD RAID10)
- ligne : 1000Mbps dont 100Mbps garanti
- SLA : 99,9%
- 1IPv4
- options proposées via leur service : consulter les statistiques, paramétrer les DNS secondaires, modifier le reverse DNS, installer un Rescue MX, lancer un scan de sécurité
- Prix : 19,99€HT/mois
Speedtest.py
Cela permet de tester la vitesse en upload et download de votre serveur linux.
Voici les commandes pour télécharger et exécuter le script python :
$ wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py $ chmod +x speedtest-cli $ ./speedtest-cli.py Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Groupe Barizco Inc. (185.22.109.12)... Selecting best server based on latency... Hosted by MEDIACTIVE NETWORK (Paris) [1.59 km]: 5.171 ms Testing download speed........................................ Download: 266.57 Mbits/s Testing upload speed.................................................. Upload: 202.66 Mbits/s
Le débit est impressionnant en trafic sortant : on atteint 33Mo/s en download mais surtout 25Mo/s en upload. La performance réseau est sans doute le point fort de ce type d’offre. On peut imaginer une plateforme d’échange de fichiers, mais il faudrait disposer de plus d’espace disque, ou connecter un backend comme Amazon EC2. La question étant, est-ce une ressource partagée ? Quelle ressource est garantie ? PlanetHoster assure que 100Mbps sont garantis et que le réseaux est en 1000Mbps.
Le temps de réponse du test est vraiment bon, seulement 5,2ms.
Téléchargement de fichier important
Le test est effectué avec un wget de plusieurs fichiers fourni comme moyen de test :
- fichier OVH France : wget http://proof.ovh.net/files/1Gio.dat
- fichier Thinkbroadband UK : wget http://download.thinkbroadband.com/1GB.zip
- fichier tweak.nl Pays-Bas : wget http://speedtest.tweak.nl/1000mb.bin
Voici les résultats pour Ikoula :
- fichier OVH France 1Go : 30,8 MB/s (4,5ms)
- fichier Thinkbroadband UK 1Go : 29 MB/s (10,5ms) (les temps de réponses sont assez fluctuants durant le test)
- fichier tweak.nl Pays-Bas 1Go : 24 MB/s (16,5ms)
Unixbench
Il permet de tester différents paramètres de votre serveur.
Pour l’installer vous aurez besoin de make et quelques autres paquets :
apt-get install libx11-dev libgl1-mesa-dev libxext-dev perl perl-modules make gcc cd /opt && wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz && tar -xzf UnixBench5.1.3.tgz cd UnixBench ./Run 1 CPU in system; running 1 parallel copy of tests Dhrystone 2 using register variables 39628251.9 lps (10.0 s, 7 samples) Double-Precision Whetstone 4839.3 MWIPS (4.9 s, 7 samples) Execl Throughput 6023.4 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 1063931.5 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 281688.9 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 3339283.8 KBps (30.0 s, 2 samples) Pipe Throughput 1869159.8 lps (10.0 s, 7 samples) Pipe-based Context Switching 356947.5 lps (10.0 s, 7 samples) Process Creation 5673.4 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 3635.3 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 712.5 lpm (60.0 s, 2 samples) System Call Overhead 2656592.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 39628251.9 3395.7 Double-Precision Whetstone 55.0 4839.3 879.9 Execl Throughput 43.0 6023.4 1400.8 File Copy 1024 bufsize 2000 maxblocks 3960.0 1063931.5 2686.7 File Copy 256 bufsize 500 maxblocks 1655.0 281688.9 1702.0 File Copy 4096 bufsize 8000 maxblocks 5800.0 3339283.8 5757.4 Pipe Throughput 12440.0 1869159.8 1502.5 Pipe-based Context Switching 4000.0 356947.5 892.4 Process Creation 126.0 5673.4 450.3 Shell Scripts (1 concurrent) 42.4 3635.3 857.4 Shell Scripts (8 concurrent) 6.0 712.5 1187.4 System Call Overhead 15000.0 2656592.3 1771.1 ======== System Benchmarks Index Score 1490.2
Il présente un score acceptable, sans toutefois être impressionnant. Le score est 3x plus important qu’un Core i7 lancé sur un seul threads et représente 3/4 d’un Core i7 si les opérations sont lancés sur les 4 coeurs.
Processeur
Le test suivant est fait via la génération aléatoire udev, qui charge un coeur du processeur pour écrire un fichier de 100Mo de données aléatoires :
$ dd if=/dev/urandom of=/dev/null bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 MB) copied, 6.1173 s, 17.1 MB/s $ dd if=/dev/urandom of=/dev/null bs=1M count=500 500+0 records in 500+0 records out 524288000 bytes (524 MB) copied, 28.7278 s, 18.3 MB/s
On atteint 17,1 Mo/s et le même est fait juste après pour un fichier de 500Mo pour atteindre 18,3 Mo/s. C’est un chiffre tout à fait honorable, c’est plus de 7 fois plus rapide que sur un core i7-2760QM 2,4Ghz. Cela devrait suffire à toutes vos applications, compte tenu du peu d’espace disque de cette offre. PlanetHoster assure qu’on dispose d’un coeur dédié de la machine physique (Dell R720, R920, etc).
Pour tester la compression via xz, gzip et pbzip2, il faut tenir en compte également la vitesse du disque. Le fichier utilisé pour le test est celui d’ovh (http://ovh.net/files/1Gio.dat) :
$ time cat 1Gio.dat | xz > 1Gio.dat.xz real 6m21.558s user 6m17.396s sys 0m2.461s $ time cat 1Gio.dat | gzip > 1Gio.dat.gz real 0m34.563s user 0m32.191s sys 0m2.073s $ time cat 1Gio.dat | pbzip2 -p2 -9 -c > 1Gio.dat.bz2 real 9m17.323s user 9m9.242s sys 0m6.220s
Les performances CPU se ressentent également lors de la compression. Au niveau compression Xz, il est aussi rapide d’un Core i7 (xz n’utilise qu’un seul thread). Pour la compression gzip et bzip on est respectivement à 5,6x et 2,1x plus rapide qu’un i7, ces valeurs sont vraiment très enthousiastes.
SysBench
Différents tests de benchmarkt sont possibles avec Sysbench : test CPU, test I/O, test de mémoire vive, etc.
Performance du CPU
Ce test est basé sur 1 seul thread (pour les VPS proposant 2vCores on travaillera avec 2 threads pour relativiser les résultats) :
# sysbench --test=cpu --num-threads=1 --cpu-max-prime=20000 run sysbench 0.4.12: multi-threaded system evaluation benchmark Removing test files... root@virtual684653:~# sysbench --test=cpu --num-threads=1 --cpu-max-prime=20000 run sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Doing CPU performance benchmark Threads started! Done. Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 24.1414s total number of events: 10000 total time taken by event execution: 24.1406 per-request statistics: min: 2.33ms avg: 2.41ms max: 22.99ms approx. 95 percentile: 2.39ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 24.1406/0.00
Il se défend remarquablement encore une fois : 16 fois plus rapide qu’un babana pi, et 2x moins d’un core i7-2760QM 2,4Ghz (test fait sur 2 threads…). Si le test sur i7 aurait été fait sur un seul threads, on serait sensiblement au même score qu’avec ce VPS.
Performances des I/O
Dans un premier temps on prépare des fichiers de tests. Il est mieux de mettre 10x plus que la RAM, mais on fait avec l’espace dont on dispose et un VPS n’en a pas beaucoup. Ici on dispose de 8,4Go d’espace libre sur les 10Go présent, on va donc faire avec.
$mkdir test $cd test $ sysbench --test=fileio --file-total-size=8G prepare sysbench 0.4.12: multi-threaded system evaluation benchmark 128 files, 65536Kb each, 8192Mb total Creating files for the test... $ sysbench --test=fileio --file-total-size=8G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Initializing random number generator from timer. Extra file open flags: 0 128 files, 64Mb each 8Gb total file size Block size 16Kb Number of random requests for random IO: 0 Read/Write ratio for combined random IO test: 1.50 Periodic FSYNC enabled, calling fsync() each 100 requests. Calling fsync() at the end of test, Enabled. Using synchronous I/O mode Doing random r/w test Threads started! Time limit exceeded, exiting... Done. Operations performed: 2124415 Read, 1416276 Write, 4531968 Other = 8072659 Total Read 32.416Gb Written 21.611Gb Total transferred 54.027Gb (184.41Mb/sec) 11802.20 Requests/sec executed Test execution summary: total time: 300.0025s total number of events: 3540691 total time taken by event execution: 85.9520 per-request statistics: min: 0.01ms avg: 0.02ms max: 31.75ms approx. 95 percentile: 0.03ms Threads fairness: events (avg/stddev): 3540691.0000/0.00 execution time (avg/stddev): 85.9520/0.00 $ sysbench --test=fileio --file-total-size=8G cleanup
Sur la partie I/O rien à dire, on remarque directement que l’on est sur du SSD, on est 114x plus rapide que sur un disque dur USB relié au banana pi. Si vous cherchez un serveur pour héberger une application contenant principalement une base de données moyenne (limite des 10Go d’espace disque) avec beaucoup d’accès concurrents, c’est idéal. L’accès à la DB sera rapide.
Performance mémoire
Niveau performance mémoire, les valeurs importantes sont les 1329018 ops/sec et 1297.87 MB/sec.
$ sysbench --test=memory --memory-total-size=800M runsysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Doing memory operations speed test Memory block size: 1K Memory transfer size: 800M Memory operations type: write Memory scope type: global Threads started! Done. Operations performed: 819200 (1329018.49 ops/sec) 800.00 MB transferred (1297.87 MB/sec) Test execution summary: total time: 0.6164s total number of events: 819200 total time taken by event execution: 0.4948 per-request statistics: min: 0.00ms avg: 0.00ms max: 0.42ms approx. 95 percentile: 0.00ms Threads fairness: events (avg/stddev): 819200.0000/0.00 execution time (avg/stddev): 0.4948/0.00
Les performances d’accès mémoire sont vraiment très bonnes. Elles sont 2,5x plus rapides que celles d’un core i7 avec DDR3. Concrètement dans le cas d’un VPS disposant d’1Go de RAM, ce critère ne doit pas être pris en compte dans votre choix. Ces performances sont bien plus importantes que celles nécessaires. Toutefois, si vous optez pour une offre disposant de plus de mémoire RAM, cela à un sens.
Lecture/Ecriture via dd
Voici le test effectué avec un fichier de 2Go, en écriture et lecture. Attention au cache disque pour la vitesse de lecture,
$ dd if=/dev/zero of=/root/zero bs=1M count=2000 2000+0 records in 2000+0 records out 2097152000 bytes (2.1 GB) copied, 2.73578 s, 767 MB/s $ dd if=/root/zero of=/dev/null bs=1M 2000+0 records in 2000+0 records out 2097152000 bytes (2.1 GB) copied, 0.725424 s, 2.9 GB/s
On atteint une vitesse très importante : 767 Mo/s en écriture et 2,9 Go/s en lecture (oui vous avez bien lu Go). Cela confirme l’utilité sans conteste de ce type de VPS pour des accès rapides aux données.
Apache local
Ceci est fait par un test de 1000 requêtes avec 30 connexions actives sur un Pydio 6.0.2. Pour plus de renseignement sur les options de AB, j’y ai consacré un article.
$ ab -n 1000 -c 30 http://server/pydio Server Software: Apache/2.2.22 Server Hostname: localhost Server Port: 80 Document Path: /pydio Document Length: 306 bytes Concurrency Level: 30 Time taken for tests: 0.417 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Non-2xx responses: 1000 Total transferred: 552000 bytes HTML transferred: 306000 bytes Requests per second: 2396.16 [#/sec] (mean) Time per request: 12.520 [ms] (mean) Time per request: 0.417 [ms] (mean, across all concurrent requests) Transfer rate: 1291.68 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.6 1 4 Processing: 3 11 1.0 11 13 Waiting: 1 10 0.9 10 11 Total: 5 12 0.7 12 16 Percentage of the requests served within a certain time (ms) 50% 12 66% 12 75% 12 80% 12 90% 12 95% 12 98% 13 99% 13 100% 16 (longest request)
Les temps de réponse d’Apache sont tout à fait correcte.
Apache distant
Server Software: Apache/2.2.22 Server Hostname: 185.22.109.12 Server Port: 80 Document Path: /pydio Document Length: 314 bytes Concurrency Level: 30 Time taken for tests: 7.593 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Non-2xx responses: 1000 Total transferred: 564000 bytes HTML transferred: 314000 bytes Requests per second: 131.71 [#/sec] (mean) Time per request: 227.780 [ms] (mean) Time per request: 7.593 [ms] (mean, across all concurrent requests) Transfer rate: 72.54 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 37 75 237.5 43 3041 Processing: 40 151 372.8 81 2342 Waiting: 40 151 372.7 81 2342 Total: 80 226 440.7 129 3221 Percentage of the requests served within a certain time (ms) 50% 129 66% 138 75% 168 80% 187 90% 244 95% 300 98% 2323 99% 2393 100% 3221 (longest request)
Ces valeurs sont correctes également.
Conclusion
Leur serveur répond correctement, tout est vraiment très fluide, la console ne saccade jamais, ce qui permet de travailler correctement. Un gros bémol est l’image Debian proposée. On dispose d’une version Squeeze non mise à jour, et sans les dépôts LTS. Une version Wheezy serait plus que la bienvenue afin de ne pas devoir faire de dist-upgrade dès le départ. Il n’y a pas de dépôt interne, mais vu le débit réseau fourni, s’est inutile.
Si vous cherchez un serveur pour héberger une application contenant une base de données moyenne (limite des 10Go d’espace disque) avec beaucoup d’accès concurrents, ce serveur est fait pour vous. Vous aurez la rapidité d’accès à la DB et également la rapidité du processeur pour le frontend web ou java. Le service sera accessible sans goulot d’étranglement non plus sur la bande passante interne. Ce VPS est vraiment typé pour ce genre d’application.
Leurs performances sont bonnes, même très bonnes, et le prix s’en ressent. L’infrastructure proposée est plus importante que lors d’autres tests. Mais pour ce prix, je m’attendais franchement à disposer d’une image à jour du système installé. Ou tout du moins disposer d’une version Debian Wheezy, elle est sortie en mi 2013. Ce côté du service est aussi à prendre en compte lors de votre choix d’un VPS.
Les performances CPU sont très bonnes. Au niveau réseau et I/O rien à redire c’est les plus hauts scores jusqu’à présent. La stabilité, la rapidité et le temps de réponse sont au rendez-vous.
29 juillet 2016 at 20:31
On est hébergé chez eux, l’infra est moyenne. Clients depuis 3 ans, ils refusent de nous migrer sur leurs nouvelles infras à moins de souscrire à leur « nouvelle offre » qui offre les mêmes choses pour deux fois plus cher.
Bref, allez plutôt voir du côté de Inmotion ou d’autres au service « américain » (respect du client)
24 février 2015 at 12:18
Oui, donc en gros on peut dire que les VPS3+ sont enfaite des hébergements de luxe pour ceux qui ont des ronds, un VPS pour se servir que d’un accés user …
24 février 2015 at 22:33
merci pour ces précisions
23 février 2015 at 17:03
Si vous arrivez a faire le meme test sur un VPS 3+ , avec le bridage à l’accés root vous serez tres fort 😉
23 février 2015 at 19:21
Des tests en accès user sont possibles, mais limités. Faire un test équivalent n’est tout simplement pas faisable. Je n’ai pas demandé si les offres VPS3+ étaient obligatoirement infogérées ou non et ce qu’ils entendaient par là. Vous savez peut-être m’en dire plus à ce sujet ?