Je tomu už více jak rok, co jsem zde na Maxiorlovi napsal článek o testování výkonu hostingu a měření rychlosti zpracování PHP skriptů pomocí nástroje PHP benchmark. V článku jsme společnými silami dali dohromady tabulku ukazující, který hosting zvládá nejrychleji a nejpomaleji zpracování PHP skriptů.
Aktuálně řeším nějaké problémy s výkonem webů majících rozsáhlejší databázi, tak mě zajímalo, jak by se daly jednoduše změřit rychlosti komunikace s databází na různých hostingových programech různých poskytovatelů.
A protože se mi nechtělo nic programovat, objevil jsem již hotový skript, který pro tyto účely sestrojil Tournas Dimitrios. Popisuje jej v článku A Simple PHP-script to Benchmark Read/Write Cycles of Mysql , SQLite and Regular-Textfiles.
Nejsem si jist, zda pro všechny bude srozumitelné, jak daný skript spustit, takže to zkusíme trošku více polopatě:
- První skriptík uložte do souboru Timer.Class.php a jeho první řádek nahraďte znaky <?php
- Druhý uložte jako soubor mysql.php a první řádek opět nahraďte znaky <?php
- Ve funkci mysqli_connect() upravte údaje pro připojení k databázi
- Zkuste mysql.php otevřít v prohlížeči. Pokud neuvidíte čtvrtý řádek s výsledky čtení z databázové tabulky, pak zeditujte řádek 25 a opravte název tabulky tak, aby měl malá písmena
- Další skript uložte jako sqlite3.php
- A konečně poslední skript uložte jako file.php
Upravené původní soubory od Tournase Dimitriose jsem si dovolil přiložit na konec tohoto článku. Postupně stačí tedy po editaci údajů v mysql.php spustit jej, sqlite3.php a file.php a zjistíte rychlosti spojení s databází a čtením/zápisem do souboru.
Test rychlosti databází na různých hostingových službách
Výše uvedenou trojici jednoduchých měřicích nástrojů jsem zkusil spustit na různých hostingových službách a několika virtuálních serverech. Naměřené výsledky jsou v tabulce. Můžete-li, vyzkoušejte u sebe a já vaše výsledky stejně jako u nahoře zmiňovaného článku doplním.
Hosting a tarif |
Změřil |
Spojení |
Vytvoření tabulky |
Zápis dat |
Čtení dat do pole PHP |
||||||
|
|
MySQL |
SQLite3 |
MySQL |
SQLite3 |
MySQL |
SQLite3 |
soubor |
MySQL |
SQLite3 |
Soubor |
Macbook |
0.00173783 |
0.0003202 |
0.00201702 |
0.00062609 |
0.10328889 |
0.59306407 |
0.11834884 |
0.10374284 |
0.6004262 |
0.12341094 |
|
Jan Polzer |
0.00580692 |
0.01203203 |
0.73991108 |
0.02761102 |
6.51315904 |
2.39362192 |
0.15134215 |
6.51977992 |
2.39582896 |
0.15188503 |
|
Wedos noLimit Extra | Josef Grill, Wedos | 0.00063705 | 0.00029898 | 0.0008812 | 0.02373791 | 0.11056113 | 2.02828002 | 0.06896019 | 0.11067319 | 2.03071404 | 0.06960702 |
Wedos noLimit Extra, SSD | Jan Polzer | 0.00081897 | 0.0010829 | 0.15254998 | 0.15270495 | ||||||
Jan Polzer |
0.00489902 |
0.00079799 |
0.01840401 |
0.00905299 |
0.06848001 |
0.9984839 |
0.01801205 |
0.07114792 |
1.00135899 |
0.01905107 |
|
Jan Polzer |
0.00041199 |
|
0.00381899 |
|
0.12980008 |
|
|
0.13030791 |
|
|
|
Jan Polzer |
0.00033784 |
0.00024319 |
0.00237203 |
0.02390814 |
0.05650902 |
0.68207312 |
0.06529403 |
0.05702281 |
0.68401909 |
0.06565905 |
|
Jan Polzer |
0.0029428 |
|
0.03615999 |
|
0.7014699 |
|
|
0.7032938 |
|
|
|
Práce s hendikepem |
0.00063014 |
|
0.27650094 |
|
0.31602407 |
|
0.97094607 |
0.31625414 |
|
0.97136092 |
|
Hexageek Web Basic | Hexageek | 0.00016713 | 0.00019693 | 0.12106705 | 0.00041485 | 0.14672899 | 0.01434398 | 0.14687514 | 0.01441097 | ||
Hexageek cPanel Start | Hexageek | 0.00251389 | 0.00044298 | 0.03785992 | 0.00099993 | 0.14784002 | 1.18873787 | 0.14826894 | 1.19878888 |
Poznámka: Macbook znamená Macbook Pro s SSD Samsung SSD840 512 GB Pro a 16 GB RAM, test v prostředí MAMP.
Tip: Tabulku si můžete stáhnout do Google Docs a výsledky ve sloupcích jednoduše seřadit. Jak na to najdete v článku Jak importovat a parsovat data z webu do tabulky v Google Docs.
Co říci k výsledkům? Výsledky jsou uvedeny v sekundách a samozřejmě jsou to velice malá čísla. Zkuste si je ale vynásobit třeba desítkou a už dostanete pro porovnání na pohled zajímavější údaje. Z výsledků vyplývá několik věcí:
1. Výborná rychlost databáze nemusí znamenat výborné načítání webu. To platí třeba pro HostGator, z nějž se weby umístěné v USA v Česku načítají o poznání pomaleji, než z místních hostingů. Přesto mě mile překvapil.
2. Vyhrazený virtuální server nemusí být nutně rychlejší v momentě, kdy je na serveru relativní klid. Na druhou stranu vám ale poskytne i tak více komfortu, protože zde nesdílíte databázi s mnoha dalšími weby.
3. Změřené hodnoty u Wedosu byly zklamáním na celé čáře. Delší dobu mám pocit, že něco neklape co se týče přístupu k databázi. Nechci jim ale křivdit a zkusím toto pořešit. Reakci určitě do tohoto článku doplním, bude-li nějaký výsledek.
Doplněno 24. 9. 2013
Doplnil jsem do tabulky ještě výsledky pro skoro 700 MB databázi u Wedosu, která je přesunuta na SSD. Rozdíl je závratný.
Příloha | Velikost |
---|---|
bench.zip | 2.41 KB |
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Díky. Řeším to s nimi u dvou hostingů, tak později do článku napíšu report. Zřejmě je to tedy ojedinělý problém.
Pokud jsem to dobře pochopil, tak u Wedosu je testovaný "Wedos noLimit Extra". Pokud je zájem, mohu zprostředkovat otestování jejich VPS. Mám v pořadí asi předposlední typ jejich VPS. Sám na tento test a záznam výsledků nemám tolik času, ale rád přidělím uživatelské údaje pro doplnění tabulky.
Pak by možná stálo za to uvést taky na jakém virtuálu web běží, evidentně mají někde problém a nemusí se to týkat všech.
Dobrý den,máme databázových serverů
několik desítek a nelze takhle něco paušalizovat. Každý server se může v
jednom okamžiku chovat jinak. Na jakém serveru a na jakém webu jste to testoval? Reálně může jít třeba o to, že tam máte problémy s výkonem webu nebo s optimalizací databáze nebo její velikostí. Porovnával jste na všech webhostinzích databází, která má stovky MB?Tohle všechno může mít vliv.
Musíte brát v úvahu i další hlediska.
Například to, že všechny naše MySQL nejsou localhost, ale naopak po
síti. Má to výhody z hlediska stability a bezpečnosti. Na druhou stranu
tam může reálně vzniknout prodleva. Je to však prodleva, která nemá vliv
na načítání webu.
Nově zřizované weby zřizujeme na SSD discích a tak by
i tam výsledek byl jiný.
Můžeme dodat výsledky pro porovnání a můžeme vybrat i další servery u nás a porovnat.
Pokud má kdokoliv jakýkoliv problém, tak to řešíme.
Možná by bylo dobré, abychom to vyřešili po mailu a tady pak publikovali, kde byl problém. Jenomže to byste mi musel odpovědět ;-) Ohledně článku jsem Vám psal.
Test byl s databází tohoto webu, na HostGatoru na jeho identické kopii, na dalších webech s podobně velkou databází.
6 sekund vs méně jak sekunda je velký rozdíl.
Výsledky z hostingu se SSD rád zveřejním.
Mimochodem, ono mi totiž trvá i 16 sekund jenom otevření databáze v phpMyAdminovi (ten je samotný načten okamžitě), takže opravdu tu vidím problém s databází. Možná jen v tomto konkrétním případě, možná náhodně i u jiných.
Ale opravdu si nechci dopisovat přes komentáře, když to můžeme pohodlně vyřešit mailem :-(
Dobrý den,
určitě to vyřídíme přes e-maily, ale schválně jsme si nyní udělali test a tam vidíte hodně jasné výsledky.
Zkusíme ještě jednu věc - více v mailu.
Výsledky WEDOS
Zde jsou výsledky z aktuálního serveru pro webhostingy, včetně databází. Je to testované na čisté a prázdné databázi (a ne na databázi se stovkami MB na které jste to zřejmě testoval tady).Test první:
Db connection established at : 0.00063705
Table created at : 0.0008812
Data inserted into the table at : 0.11056113
Data is read from table and inserted into an array at : 0.11067319
Pro ověření:http://52942.w42.wedos.ws/test/mysql.php
Test druhý:Db connection established at : 0.00029898
Table created at : 0.02373791
All data is set into the table at : 2.02828002 Data is read from table and inserted into an array at : 2.03071404Pro ověření:
http://52942.w42.wedos.ws/test/sqllite3.php
Test třetí:Opening file for inserting the data : 2.217E-5
All data is inserted into the file : 0.06896019 End of file read at : 0.06907821
Data inserted into array at : 0.06960702
Pro ověření:
http://52942.w42.wedos.ws/test/file.php
Tohle jsou výsledky z reálného serveru, což lze ověřit i z IP. Lze to otestovat kdykoliv. Výsledky nejsou špatné, ale naopak velmi pěkné.
Díky za odkazy a doplnění. Nicméně neříkejte, že jste horší, než HostGator, který tu velkou databázi zvládne s přehledem (byť má jiné problémy), co? ;-) Chtělo by to výsledky na podobně velké databázi, jako jsem použil já.
Dobrý den,
jen bych k tomu doplnění ohledně těch SSD u WEDOS poznamenal jednu věc... Když už to "vyplulo na povrch", tak dodáváme, že všechny nové webhostingy u WEDOS již mají automaticky databáze na SSD, tak s výše uvedenými výsledky.¨
Zároveň jsme se rozhodli, že v případě potřeby tam přemigrujeme i některé starší.
Plus jsme se rozhodli a začali jsme i realizovat postupnou migraci všech MySQL serverů (je jich asi 46 :-( ) na SSD. Tak se dočkají všichni.
Spokojenost klientů je u WEDOS prioritou...
Jestli muzu za nas tak Klasicky Web Basic
MySQL: Db connection established at : 0.00016713
Table created at : 0.12106705
Data inserted into the table at : 0.14672899
Data is read from table and inserted into an array at : 0.14687514
SQLITE3Db connection established at : 0.00019693
Table created at : 0.00041485
All data is set into the table at : 0.01434398 Data is read from table and inserted into an array at : 0.01441097
a novy CPANEL HOSTING / CPANEL STARThttp://www.hexageek.com/cze/pages/cpanel-hosting
MYSQLDb connection established at : 0.00251389
Table created at : 0.03785992
Data inserted into the table at : 0.14784002
Data is read from table and inserted into an array at : 0.14826894
SQLITE3Db connection established at : 0.00044298
Table created at : 0.00099993
All data is set into the table at : 1.18873787 Data is read from table and inserted into an array at : 1.19878888
Jak občas koukám na Webtrh a Vaši aktivitu u podobných příspěvků, tak jsem jenom čekal, kdy se ozvete :-) Ale samozřejmě díky, výsledky jsem do tabulky doplnil. Mimochodem, cPanel hosting i jeho parametry vypadají docela zajímavě.
Pěkný test. Jen mi není jasná jedna věc - čas.
Čím vetší číslo tím lepší? Jestli to je tedy v sekundách, nemělo by menší číslo být tedy lepší? Nějak mi to není jasné. Díky za objasnění :)
Čím menší, tím lepší.
Ten wedos je zvláštní, vyšly mě jiné hodnoty (mysql) na stejném tarifu:Db connection established at : 0.00116181Table created at : 0.06170893Data inserted into the table at : 0.25398684Data is read from table and inserted into an array at : 0.25485396