Serwery

Testy poszczególnych serwerów

z dnia 2013-10-03

Sprawdźmy zatem jak prezentują się różnice pomiędzy poszczególnymi wariantami serwerowymi. Warto przypomnieć, że każdy VPS posiada tak zwaną moc gwarantowaną, do której dostęp będziemy mieć zawsze i niezależnie od warunków. Oprócz tego, gdy fizyczna maszyna nie jest obciążona system może przełączyć się w tryb boost, w którym parametry zostają dodatkowo zwiększone.

Z tego powodu w każdym teście wykonaliśmy 3 pomiary: pierwszy około godziny 9:00 rano, drugi popołudniu o 16:00, a trzeci nocą w pobliżu północy. Otrzymane dane są wartościami uśrednionymi. Każdy test wykonywany był na świeżo zrestartowanym serwerze. Zainstalowane było na nim środowisko graficzne Gnome, jednak wszędzie tam, gdzie była taka możliwość było ono wyłączone i korzystaliśmy z konsoli SSH.

Testy rozpoczynamy od aplikacji Unix Benchmark, która jest chyba standardem jeśli chodzi o testowanie urządzeń z systemem Linux. Wykonuje ona szereg zautomatyzowanych testów uruchamianych z pliku wykonywalnego bez dodatkowych parametrów i podaje wyniki w punktach, zupełnie jak większość Windowsowych syntetyków. Poniżej znajduje się opis poszczególnych testów:

  • Dhrystone 2 using register variables - wykonuje ogólny zestaw instrukcji testując operacje na liczbach stałoprzecinkowych
  • Double-Precision Whetstone - tak jak powyżej, ale z wykorzystaniem liczb zmiennoprzecinkowych
  • Execl Throughput - mierzy maksymalną ilość wywołań execl w ciągu sekundy
  • File Copy 1024/256/4096 bufsize 2000/500/8000 - kopiowanie plików o różnych wielkościach przy różnych rozmiarach bufora
  • Pipe Throughput - mierzy ile razy w ciągu sekundy serwer może zapisać i odczytać próbkę o wielkości 512 bajtów do określonego kanału komunikacyjnego
  • Pipe-based Context Switching - mierzy ile razy dwa procesy mogą wymienić się inkrementowaną liczbą całkowitą poprzez określony kanał komunikacyjny w ciągu sekundy
  • Process Creation - mierzy ile procesów można utworzyć i natychmiast zabić w okreśonym czasie
  • Shell Scripts (1/8 concurrent) - mierzy ile skryptów shell serwer może uruchomić i zamknąć w czasie jednej minuty
  • System Call Overhead - szacuje czas potrzebny na wejście i opuszczenie jądra systemu poprzez nieustanne wywoływanie funkcji pobierającej numer procesu

Unix Benchmark
[punkty] więcej = lepiej

Dhrystone 2 using register variables 5744,0
2986,6
1498,6
Double-Precision Whetstone 1257,1
628,6
313,8
Execl Throughput 2073,1
1162,8
719,7
File Copy 1024 bufsize 2000 maxblocks 808,4
819,2
1080,0
File Copy 256 bufsize 500 maxblocks 544,3
592,3
863,7
File Copy 4096 bufsize 8000 maxblocks 1464,3
1504,8
1376,9
Pipe Throughput 3383,8
1766,0
878,5
Pipe-based Context Switching 1727,7
899,0
452,3
Process Creation 1463,2
849,8
520,2
Shell Scripts (1 concurrent) 2463,6
1319,2
706,1
Shell Scripts (8 concurrent) 2383,6
1269,8
689,3
System Call Overhead 1186,7
1060,2
878,0
Wynik ogólny 1698,1
1118,1
762,1
  Professional
Standard
Basic

Wyniki nie są chyba zaskakujące. Praktycznie w każdym teście liderem jest VPS Professional, zaraz za nim znajduje się Standard, a następnie Basic. W rezultacie ogólnym widać dość spore różnice w wydajności.

GtkPerf to okienkowa aplikacja, która wymaga uruchomienia w środowisku graficznym. Wykonuje ona automatyczny test sprawdzając takie rzeczy, jak szybkość generowania interfejsu, rysowania grafiki oraz innych operacji związanych z powłoką wizualną. Wynik to czas w sekundach potrzebny na wykonanie testu.

GtfPerf
[sek] mniej = lepiej

VPS Professional 8,89
VPS Standard 9,89
VPS Basic 13,39

Do kolejnego testu wykorzystaliśmy niezbyt skomplikowaną aplikację Apache Benchmark, która pozwala na przetestowanie wspomnianego serwera uruchomionego na testowanej maszynie. Jego wersja to 2.2.15, wydanie interpretera PHP to 5.3.3, natomiast serwera baz MySQL 5.1.69. Nie modyfikowaliśmy go w żaden sposób, nie były uruchomione żadne moduły lub dodatki optymalizacyjne, czy też zarządzające pamięcią podręczną. Test wykonany został na maszynie lokalnej z konsoli SSH. Ilość zapytań była ustawiona na 1000, natomiast jednocześnie uruchamiane było 5. Stroną testową była strona główna świeżo zainstalowanego Wordpressa.

ab -n1000 -c5 [adres-strony-testowej]

Apache Benchmark
[ms] mniej = lepiej

VPS Professional 91,87
VPS Standard 171,56
VPS Basic 341,99

W identycznych warunkach przeprowadzony był kolejny test, do którego wykorzystaliśmy usługę LoadImpact. Przez wybrany czas generuje ona na testowanym serwerze maksymalne obciążenie, dzięki czemu możemy sprawdzić jak zachowa się on w ekstremalnych sytuacjach. Następnie zależność czasu ładowania strony od ilości aktywnych użytkowników przestawiana jest na wykresie (niżej kolejno serwer Professional, Standard i Basic).

Test trwał 10 minut, a w tym czasie obciążenie płynnie rosło od zera do 600 aktywnych, tak zwanych wirtualnych użytkowników. Przeprowadzony był z 5 różnych serwerów ulokowanych w różnych miejscach świata: Dublin, Londyn, Chicago, Sydney oraz Tokyo. Nie należy zupełnie zwracać uwagi na czasy ładowania. Wynikają one przede wszystkim z silnego obciążenia witryny oraz odległości serwerów testujących. Oprócz tego po krótkiej konfiguracji serwera Apache można by je skrócić nawet 10-krotnie.

Analiza wyników testu może pomóc w przewidywaniu obciążenia i optymalizacji serwera. My możemy zauważyć, że im słabszy VPS, tym większe są wahania czasu ładowania w ostatnim etapie testu. Poza tym liczba aktywnych użytkowników, dla których czas ładowania strony przekracza 1 minutę dla serwerów Professional, Standard i Basic wynosi kolejno 127, 103 i 78.

Ostatni test wykonaliśmy z użyciem aplikacji HardInfo. Wyświetla ona różne interesujące informacje o komputerze, na którym została uruchomiona, takie jak rodzaj i szybkość procesora, statystyki wykorzystania pamięci RAM czy ustawienia karty sieciowej. Oprócz tego ma ona możliwość przeprowadzenia krótkich testów wydajności. Większość wyników przedstawia czas szyfrowania pewnej próbki danych z wykorzystaniem różnych technologii, który im jest krótszy tym lepszy. Wyjątkiem jest test CryptoHash, gdzie przedstawiona jest ilość danych przetworzonych w ciągu sekundy i tu rzecz jasna bardziej pożądana jest wyższa wartość.

HardInfo

CPU Blowfish
[sek] mniej = lepiej
5,17
10,48
20,59
CPU CryptoHash
[MB/s] więcej = lepiej
290,52
124,39
84,06
CPU Fibonacci
[sek] mniej = lepiej
3,07
3,17
3,46
CPU N-Queens
[sek] mniej = lepiej
12,37
15,53
10,42
FPU FFT
[sek] mniej = lepiej
2,05
4,58
9,15
FPU Raytracing
[sek] mniej = lepiej
16,63
16,12
17,84
  Professional
Standard
Basic

Nie jest chyba żadnym zaskoczeniem stwierdzenie, że serwer Basic okazał się najwolniejszy, najszybszy był wariant Professional, a Standard ulokował się pośrodku. Wyniki dają jednak pewne wyobrażenie tego, jakie są dokładnie różnice w wydajności między nimi i ile możemy zyskać decydując się na szybszy plan. Oprócz tego w Internecie znajduje się wiele stron, gdzie użytkownicy umieszczają wyniki wydajności serwerów innych dostawców, dzięki czemu można porównać który z nich jest najlepszy. W tym przypadku VPSy Homecloud wykazały się bardzo dobrą wydajnością za rozsądną cenę.