VServer Geschwindigkeit messen

Was muss ich mir unter „1 vCore Leistung“, von dem ich quasi überall lese, vorstellen?

Während RAM in gut überprüfbaren „garantierten MB“ angegeben werden, finde ich die Rechenleistung hingegen eher unklar definiert… unklar? nebülos! Das macht die Vergleichbarkeit nach den reinen Specs natürlich wirklich schwierig bis unmöglich; das ist sicherlich auch so gewollt.

Um mir Klarheit zu schaffen, habe mir mit myVirtualserver eine interessante Vergleichs-Firma ausgesucht, die niedrige Preise für ihre VServer hat und diese fein nach Leistungsstufen staffelt. Da man netterweise bei myVirtualserver die VPS jederzeit sofort down-/upgraden kann, habe ich für meine Experimente dort etwas Geld aufgeladen und gleich mal ein paar Instanzen durchprobiert.

Dabei habe ich drei Arten von Tests durchführt, um alle Aspekte ein wenig zu beleuchten.

CPU Benchmark

Wie ich in einem interesanten Blogpost, in dem mehrere Strato vServer durchgemessen wurden, gelesen habe, lässt sich die CPU Performance mit einem Einzeiler messen:

time echo "scale=1000; 4*a(1)" | bc -l

Selbstverständlich ist das nicht so akurat wie ein Langzeit-Test, der alle möglichen Komponenten eines Systems einbezieht. Ich will es mir nur nicht auf Systemen mit geteilten Ressourcen erlauben, diese für eine kurze „Orientierung“ der vermuteten Leistung so stark und lange unter Last zu setzen, dass Admins auf mich aufmerksam werden. 😉

PHP Benchmark

Ich habe hier ein kleines PHP Benchmark Skript gefunden, welches nur wenige Sekunden läuft (und daher wohl keine Admins wegen Dauerauslastung auf den Plan ruft) und schon einen kurzen Eindruck der Performance eines VServers geben kann: http://php-benchmark-script.com

Das Skript kann einfach von der Shell des Servers heraus heruntergeladen, ausgepackt und an eine aufrufbare Adresse (z.B. http://meinedomain.de/bench.php) verschoben werden:

wget -c http://php-benchmark-script.com/bench.zip
unzip bench.zip
mv bench.php /var/www/html/

Koken Praxis Test

Ich halte an sich nicht so viel von synthetischen Benchmarks. Daher versuche ich mir den PHP Benchmark Score jetzt in eine „gefühlte Koken Performance“ zu übersetzen, da dies später mein tatsächlicher Anwendungsfall ist.

Zum Testen lasse ich immer wieder dieselben 10 Bilder hochladen und verarbeiten. Die Zeit dafür nehme ich mit der Stopuhr. Um Vergleichbarkeit zu schaffen, lösche ich die Bilder danach wieder und leere alle Caches.

Ergebnisse

Und es wird spannend…

Kaus @ Uberspace

Specs: Laut lscpu KVM-virtualisiert, 12 Kerne, Intel Core i7-2600K, 10 GB RAID 10 HDD
Preis: Frei wählbar, mind. 1 € / Monat; Preisempfehlung des Anbieters sind 5 €

--------------------------------------
|      PHP BENCHMARK SCRIPT          |
--------------------------------------
Start : 2014-10-05 06:36:17  
Server : kaus.uberspace.de@185.26.156.16  
PHP version : 5.5.10  
Platform : Linux  
--------------------------------------
test_math                 : 1.626 sec.  
test_stringmanipulation   : 1.835 sec.  
test_loops                : 0.919 sec.  
test_ifelse               : 0.898 sec.  
--------------------------------------
Total time                : 5.278 sec.  
real 0m0.502s  
user 0m0.493s  
sys  0m0.011s  

Da es ein Shared Hosting ist, sage ich gleich dazu: Ja, ich habe mit dem Tool htop die Auslastung der Kerne angesehen. Momentan ist da wohl gerade wenig los. Im Mittel stehen die 12 angezeigten Kerne bei 8% und ab und zu ist einer mal für 15 Sekunden auf 100%. Während der Benchmark läuft, wird ein zweiter Kern für ca. 8 Sekunden voll ausgelastet. Die Messwerte schwanken bei mehreren Durchläufen um die 0.2 Sekunden.

Dauer der Verarbeitung von 10 Test-Fotos in Koken: 1 Minute, 30 Sekunden.

myVirtualserver OVZ-256

Specs: 1 vCore @ Intel i7-3960X (laut lscpu), 256 MB RAM, 5 GB RAID 10 HDD, OpenVZ
Preis: 1.49 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 07:32:57  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 12.826 sec.  
test_stringmanipulation   : 12.607 sec.  
test_loops                : 6.798 sec.  
test_ifelse               : 5.602 sec.  
--------------------------------------
Total time:               : 37.833 sec.  
real 0m3.292s  
user 0m0.394s  
sys  0m0.000s  

Dauer der Verarbeitung von 10 Test-Fotos in Koken: 1 Minute, 30 Sekunden.

myVirtualserver OVZ-512

Specs: 1 vCore @ Intel i7-3960X (laut lscpu), 512 MB RAM, 10 GB RAID 10 HDD, OpenVZ
Preis: 1.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 06:56:56  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 5.196 sec.  
test_stringmanipulation   : 6.883 sec.  
test_loops                : 3.397 sec.  
test_ifelse               : 3.414 sec.  
--------------------------------------
Total time:               : 18.89 sec.  
real 0m1.446s  
user 0m0.391s  
sys  0m0.000s  

Als ein richtiger VServer wird mir im htop nur die Auslastung des einen (virtuellen) Kerns angezeigt. Was also wirklich auf der Maschine los ist, weiß man nicht. Die Anzeige im „Control Panel“ auf der WebSeite verstehe ich dabei noch nicht ganz: Hier wird bei 100% Auslastung im htop nur „22.17 % von 1 Prozessorkern verwendet“. Entweder stimmt die Anzeige nicht oder sie bezieht sich auf die physikalische Maschiene dahinter, was natürlich eine ziemlich interessante Information wäre.

myVirtualserver OVZ-1

Specs: 1 vCore @ Intel i7-3960X (laut lscpu), 1 GB RAM, 25 GB RAID 10 HDD, OpenVZ
Preis: 2.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 08:00:16  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 2.718 sec.  
test_stringmanipulation   : 2.718 sec.  
test_loops                : 1.605 sec.  
test_ifelse               : 1.388 sec.  
--------------------------------------
Total time:               : 8.429 sec.  
real 0m0.749s  
user 0m0.397s  
sys  0m0.000s  

8 Sekunden sind hier ein spannendes Ergebnis, da wir uns der Uberspace Performance annähern. 🙂

Dauer der Verarbeitung von 10 Test-Fotos in Koken: 45 Sekunden. Damit lässt sich schon arbeiten. Aber richtig flüssigt ist es damit auch noch nicht.

myVirtualserver OVZ-2

Specs: 2 vCore @ Intel i7-3960X (laut lscpu), 2 GB RAM, 50 GB RAID 10 HDD, OpenVZ
Preis: 4.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 08:29:16  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 2.499 sec.  
test_stringmanipulation   : 2.690 sec.  
test_loops                : 1.675 sec.  
test_ifelse               : 1.231 sec.  
--------------------------------------
Total time:               : 8.095 sec.  
real 0m0.738s  
user 0m0.387s  
sys  0m0.000s  

Dieses Ergebnis überrascht mich. Diese Benchmarks scheinen nicht von Multi-Cores (ab dieser Tarifstufe gibt es 2!) zu profitieren. Und das, obwohl während des PHP Benchmarks für beide Kerne volle Auslastung angezeigt wird. (Zur Sicherheit habe ich die Instanz neu gestartet und den Test noch 2x ausgeführt. Die Ergebnisse änderten sich dadurch nicht.)

Von dem „CPU Benchmark“ weiß ich, dass er Single Core ist. Das sagt mir jetzt, dass der OVZ-2-vCore gegenüber der kleineren Version nicht so offensichtlich gedrosselt ist, wie der OVZ-256 gegenüber der OVZ-512. Oder soll ich glauben, dass das alles am Arbeitsspeicher liegt? Ich zweifle.

Selbst Koken benötigte wieder genau 45 Sekunden für die Verarbeitung der 10 Bilder. Wenigstens hier hätte ich erwartet, dass es mehrere Prozesse auf verschiedenen vCores zur Verarbeitung spawned und diese Ressourcen nutzt.

myVirtualserver OVZ-3

Specs: 3 vCore @ Intel i7-3960X (laut lscpu), 3 GB RAM, 75 GB RAID 10 HDD, OpenVZ
Preis: 7.49 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 08:46:08  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 2.774 sec.  
test_stringmanipulation   : 2.872 sec.  
test_loops                : 1.699 sec.  
test_ifelse               : 1.313 sec.  
--------------------------------------
Total time:               : 8.658 sec.  
real 0m0.736s  
user 0m0.384s  
sys  0m0.001s  

( Den Koken Test spare ich mir hier mal. )

myVirtualserver OVZ-4

Specs: 4 vCore @ Intel i7-3960X (laut lscpu), 4 GB RAM, 100 GB RAID 10 HDD, OpenVZ
Preis: 9.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 08:57:11  
Server : 1565.vhost.myvirtualserver.de@5.230.233.210  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 2.867 sec.  
test_stringmanipulation   : 2.900 sec.  
test_loops                : 2.054 sec.  
test_ifelse               : 1.742 sec.  
--------------------------------------
Total time:               : 9.563 sec.  
real 0m0.706s  
user 0m0.373s  
sys  0m0.003s  

Das ganze geht dann noch weiter bis OVZ-8, aber 20€ würde ich monatlich nicht ausgeben wollen.

Die KVM Range

Interessanter ist die Performance der KVM-Virtualisierung… Ich habe in diversen Foren gelesen, dass KVM besser und schneller sein soll. Allerdings habe ich keine konkreten Benchmarks dazu gefunden, welche die Unterschiede genauer spezifzieren… also mache ich mir diese jetzt eben selbst. 🙂

myVirtualserver KVM-1

Specs: 1 vCore @ Family 15 Model 6 (laut lscpu), 1 GB RAM, 25 GB RAID 10 HDD, KVM
Preis: 3.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 09:43:40  
Server : 5.230.232.125@5.230.232.125  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 1.217 sec.  
test_stringmanipulation   : 2.095 sec.  
test_loops                : 1.226 sec.  
test_ifelse               : 1.283 sec.  
--------------------------------------
Total time:               : 5.821 sec.  
real 0m0.304s  
user 0m0.300s  
sys  0m0.000s  

Hallo Uberspace 😀

Die Verarbeitung der 10 Test-Fotos dauerte 40 Sekunden. Das muss noch schneller gehen.

myVirtualserver KVM-2

Specs: 1 vCore @ Family 15 Model 6 (laut lscpu), 2 GB RAM, 50 GB RAID 10 HDD, KVM
Preis: 6.99 € / Monat

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-05 10:12:11  
Server : 5.230.232.125@5.230.232.125  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 1.237 sec.  
test_stringmanipulation   : 2.100 sec.  
test_loops                : 1.281 sec.  
test_ifelse               : 1.033 sec.  
--------------------------------------
Total time:               : 5.651 sec.  
real 0m0.332s  
user 0m0.304s  
sys 0m0.000s  

Interessanterweise dieses Mal keine leistungsmäßige Steigerung, lediglich mehr RAM und Festplatte.

Fazit

Meinen Verfügungsrahmen zum Rumspielen mit dem Service habe ich dann jetzt wohl aufgebraucht… *g*

Das schnelle Down-/Upgraden einer myVirtualserver-Instanz gefällt mir gut. Diese Bedarfs-Anpassung hat etwas ziemlich cloudiges und ermöglicht, schnell den richtigen Level an Power zu finden. Das könnten die nur noch verbessern, indem man per Schieberegler Mhz-genau die Ziel-Performance einstellen kann und man dann genau das bezahlt. 😀

In der Praxis scheint es aber Blödsinn zu sein, ein höheres Produkt als OVZ-1 aus dieser Range zu wählen. Die Performance wird nicht besser, lediglich mehr Speicher. Statt OVZ-2 sollte man in jedem Fall KVM-1 nehmen!

Nun… Bei myVirtualserver bekommt man also ein System für 3.99 €/Monat, welches mit Uberspace leistungsmäßig (Benchmarks) vergleichbar ist. Das hat nun für mich Vor- und Nachteile aus Sicht von myVirtualserver:

Vorteile:
+ Man kann/darf Java Servlets/Tomcat laufen lassen
+ Es gibt 25 GB statt 10 GB (naja, kleines + … mehrere Uberspaces gingen dafür ja auch)

Nachteile:
- „Volle Kontrolle“ bedeutet natürlich auch, dass man sich um alles selber kümmern muss, was das Stopfen von Sicherheitslücken angeht.
- Den grandiosen Support und die Philosophie der Ubernauten gibt es nur an einem Ort. 😉

Das, was Uberspace fehlt, ist eigentlich nur ein brauchbares Java-Hosting-Angebot. Das macht aber nichts, da es dafür eine kostenlose(!) Alternative gibt: Die Google App Engine. 🙂

Ich hoffe, dass dieser Artikel hilft, besser einzuschätzen, was ein wirklich passender Preis für einen Uberspace wäre… und wenn man den ermittelt hat, legt man noch was drauf, weil die Jungs große Klasse sind. 😀

Netcup Server

Die Werte der Netcup VPS Preisbrecher 5.0 (Link zum Angebot; 5.99 € / Monat) mit besten Dank an Maik:

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2014-10-13 20:50:20  
Server : digitaltraum.de@37.120.168.55  
PHP version : 5.4.4-14+deb7u14  
Platform : Linux  
--------------------------------------
test_math                 : 1.270 sec.  
test_stringmanipulation   : 1.376 sec.  
test_loops                : 0.800 sec.  
test_ifelse               : 0.845 sec.  
--------------------------------------
Total time:               : 4.291 sec.  

 OVH VPS Classic 1

Vielen Dank an Helmut für die Werte der kleinsten OVH VPS (Link zum Angebot, 2.40€ / Monat). Aufgrund ihres DDOS Schutz-Systems und den günstigen Preises ist diese auch sehr populär.

Architecture: x86_64  
CPU op-mode(s): 32-bit, 64-bit  
Byte Order: Little Endian  
CPU(s): 8  
Vendor ID: AuthenticAMD  
CPU family: 16  
Model: 2  
Stepping: 3  
CPU MHz: 3000.000  
BogoMIPS: 6000.00  
Hypervisor vendor: VMware  
Virtualization type: full  
--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2014-12-22 17:39:02  
Server : XXX  
PHP version : 5.4.35-0+deb7u2  
Platform : Linux  
--------------------------------------
test_math : 2.549 sec.  
test_stringmanipulation : 2.683 sec.  
test_loops : 1.452 sec.  
test_ifelse : 0.939 sec.  
--------------------------------------
Total time: : 7.623 sec.