Na forach oraz w grupach dyskusyjnych często można spotkać prośbę o polecenie „najlepszego hostingu„. Najlepszy to rzecz jasna pojęcie wieloznaczne, a wśród wielu kryteriów, które można brać pod uwagę jest wydajność. Jak samodzielnie ją sprawdzić ZANIM kupisz hosting? Ten test możesz szybko wykonać przed zakupem hostingu, podczas bezpłatnego okresu testowego.
Wpis jest przeznaczony dla:
- średniozaawansowanych użytkowników hostingów, którzy chcą prostego benchmarku działającego w niemal każdym środowisku hostingowym
- właścicieli oraz twórców stron i aplikacji, którzy wolą mieć prosty skrypt uruchamiany w oknie przeglądarki, niż wykonywać skomplikowane polecenia w linii komend.
1 Wydajność obsługi stron
Wydajność działania strony w największym stopniu zależy od niej samej, czyli od jakości kodu, natomiast ta sama strona umieszczone w różnych środowiskach serwerowych może działać lepiej lub gorzej. Jeśli rozglądasz się na za nowym hostingiem to na pewno wydajność działania stron będzie jednym z ważnych kryteriów. Ta wydajność jest determinowana kilkoma składowymi, między innymi wydajnością interpretera PHP (większość stron to strony dynamiczne w PHP), wydajnością samego serwera www, a także podsystemu bazodanowego.
2 Wydajność baz
Ponieważ współczesne aplikacje (systemy CMS, sklepy) większość operacji wykonują na bazach danych dobrze byłoby wiedzieć, jak dany hosting radzi sobie z przetwarzaniem popularnych zapytań MySql. W tym wpisie proponujemy użycie bezpłatnego skryptu Simple DB Speed Test. To proste narzędzie, którego użycie ogranicza się do wrzucenia na serwer jednego pliku i wywołania jego url w przeglądarce.
Narzędzie bazuje na PHP i nie mierzy precyzyjnie całej wydajności serwera MySql, bo na jego działanie ma wpływ także warstwa PHP, jednak jest to wpływ wręcz marginalny, a test odzwierciedla realną prędkość bazy danych, na jaką może liczyć Twoja aplikacja, która także będzie w języku PHP. Test opiera się o stworzenie tablicy o strukturze podobnej, jak w wielu popularnych aplikacjach. Tworzona tabela zawiera:
- Klucz główny – id numeryczne, autoinkrementowane
- pole typu integer, na liczbę całkowitą, nieindeksowane (np. cena)
- pole typu tekstowego, 255 znaków, nieindeksowane (np. opis produktu),
- pole typu tekstowego z krótkim tekstem (np. kolor)
3 Na czym polega test?
Test polega utworzeniu 5.000 rekordów wg powyższej struktury, z losowymi danymi. Mierzony jest czas wstrzykiwania rekordów i obliczana zostaje wydajność (liczba operacji na sekundę).
W kolejnym kroku aplikacja wykonuje pętle po 500 zapytań dla pięciu popularnych rodzajów zapytania typu SELECT do bazy danych, za każdym razem odpytując o inne, losowo wybierane dane.
- Wybranie rekordu po kluczy głównym – co odpowiada np. wyświetleniu produktu o znanym ID, albo wczytaniu danego artykułu w WordPress
- Wyszukanie rekordów gdzie pole typu integer ma zadaną wartość (np. wszystkie produkty o cenie 149 zł)
- Wyszukanie rekordów zawierających określony podciąg trzech znaków, co symuluje działanie wyszukiwarki na stronie,
- Wyszukanie rekordów gdzie liczba pomnożona przez 1.23 jest większa niż…(np. dla ceny)
- Wyszukanie rekordów gdzie tekst = określony ciąg, np. wszystkie bluzki o kolorze „niebieski”
W
ostatnim kroku aplikacja wykonuje test zamiany jednego ciągu znaków na
drugi we wszystkich rekordach, 200 razy podmieniając zawartość
ostatniego pola (np. zamiana wszystkich kolorów ‚niebieski’ na kolor
‚zielony’.
4 Interpretacja wyników
Test warto powtórzyć kilkukrotnie o różnych porach dnia. Okazuje się, że między serwerami różnych marek mogą istnieć istotne różnice wydajnościowe. Przykładowo na serwerze w cyber_Folks uzyskano następujące wyniki:
Jak widać, hosting zapewnia bardzo wysoką wydajność w zakresie wyszukiwania informacji w bazie, ale wyniki w zakresie dopisywania nowych rekordów nie są aż tak imponujące. Jest to zatem dobry wybór tam, gdzie w bazie będziesz przede wszystkim dokonywać intensywnych odczytów – np. w sklepie internetowym, gdzie zdecydowanie częściej ogląda się istniejące produkty, niż umieszcza nowe.
Jeśli natomiast Twoja aplikacja miałaby przede wszystkim dodawać rekordy do bazy (np. aplikacja do roboczego zbierania danych ankietowych, albo tworząca w bazie obszerne logi), to w wypadku np. Blink.pl uzyskaliśmy wyniki zgoła inne. W tym wypadku mówimy o znacznie szybszym dodawaniu nowych rekordów, ale kosztem o wiele wolniejszego odczytywania istniejących.
Jak
więc widać – przy pomocy narzędzia możesz szybko i łatwo określić,
który hosting (z punktu widzenia wydajności MySql) będzie najlepszy w
Twoim wypadku.
5 Jak pobrać i uruchomić test?
Narzędzie jest całkowicie bezpłatne. Pobierz plik, rozpakuj i umieść na serwerze w folderze, na który wskazuje Twoja domena. W wypadku hostingu w cyber_Folks w folderze domeny /public_html i wywołaj w przeglądarce, wpisując url w postaci domena/test.php Następnie wystarczy wpisać dane dostępowe do bazy danych i gotowe. Narzędzie nie zepsuje danych w Twojej bazie, utworzy własną tabelę, którą usunie po wykonaniu testu, jednak mimo to – najlepszą praktyką będzie uruchomienie do testu osobnej bazy.
Pobierz narzędzie bezpłatnie (ver. 1.3)
6 I to wszystko?
Prawie. Jeśli takie proste i szybkie mierzenie wydajności MySql wydaje Ci się ciekawe – podziel się tym wpisem ze znajomymi! Polecamy również dowiedzieć się na przyszłość jak wygląda import bazy danych mysql.
Link do pobierania narzędzia nie działa…
Dzięki za wychwycenie – przepraszam, faktycznie chwilowo był tu nieprawidłowy link. Został zaktualizowany, ponadto zamieściłem już wersję 1.3, która obsługuje nowsze interpretery PHP. Życzę udanego testowania!