Dlouhodobě sledujeme weby a aplikace, které jsou u nás hostované a zákazníkům se snažíme poskytnout maximální možný servis, abychom zajistili vysokou dostupnost a výkon aplikací. Monitoring aplikací pomáhá nejem nám, ale i zákazníkům, protože mohou dlouhodobě sledovat výkon.
U větších zákazníků začneme monitorovat aplikaci ještě před samotnou migrací k nám, abychom měli data pro porovnání. S jedním zákazníkem jsme po migraci k nám narazili na to, že jeho aplikace byla na naše poměry příliš pomalá a pustili jsme se do řešení.
Zákazník provozuje středně velký web, který je napsaný v PHP a využívá MySQL databázi. Z pohledu aplikačních serverů se využívá Nginx v kombinaci s PHP-FPM ve verzi 7.2. Databáze běží na Percona serveru 5.7.
Se zákazníkem jsme v prvním kroku hledali, jestli je zde možnost aplikaci zoptimalizovat, ale nepodařilo se nám najít řešení bez cachování odpovědí z databáze. Cachování se obecně snažíme u aplikací vyhnout a používáme je jen v případě, kdy tím například ušetříme výraznou částku na provozu nebo má jiný pozitivní důsledek pro zákazníka, který je výraznější než jeho rizika.
Původní konfigurace serveru:
V původním serveru byl procesor E5-2650Lv4 - jedná se o CPU s 14 jádry s HT má 28 vláken o frekvenci 1,7GHz (turbo 2,5GHz). V serveru bylo dále 128GB RAM typu DDR4 ECC Registered, které pracovaly na frekvenci 2400MHz.
Konfigurace nového serveru:
Nový server je trochu novější s procesorem E-2136 - čili 6 jader (12 vláken) se základní frekvencí 3,3GHz (turbo 4,5GHz). Paměť byla použita 64GB DDR4 ECC unbuffered o frekvenci 2133MHz.
Tuto konfiguraci serveru jsme vybrali s ohledem na pořizovací náklady a na spotřebu serveru, která následně ovlivní provozní cenu. Intel sice dělá procesory z řady E5 s vyšší frekvencí, ale tam je výkon vykoupen neúměrnou spotřebou procesorů a vysokou pořizovací cenou. Protože ale nevyužijeme vyšší počet PCI-E linek, ani vyšší možnost osazení pamětí, tak pro nás ekonomicky E5 s vyšší frekvencí v tomto případě nebyly výhodné.
Srovnávací tabulka:
Server | CPU | Frekvence | Turbo | Počet jader / vláken | RAM | Frekvence RAM |
---|---|---|---|---|---|---|
Původní | E5-2650Lv4 | 1,7 GHz | 2,5 GHz | 14 / 28 | 128GB DDR4 ECC Registered | 2400 MHz |
Nový | E-2136 | 3,3 GHz | 4,5 GHz | 6 / 12 | 64GB DDR4 ECC Unbuffered | 2133 MHz |
Na daném webu v rámci monitoringu dlouhodobě sledujeme 3 stránky, které jsou pro zákazníka důležité. Jedná se o úvodní stránku, výsledky vyhledávání a stránka s detailem.
Zrychlení webu se projevilo ihned a v tomto případě je velmi výrazné. Ačkoliv je frekvence procesoru jen 2x vyšší než u původního serveru, web byl zrychlen z původních 3 vteřin na průměrně 1 vteřinu na měřený scénář. To je výsledek, který nás i zákazníka uspokojil.
Je pravda, že porovnáváme servery, které jsou od sebe jednu celou generaci vývoje vzdálené. Ze zkušeností a z měření, které provádíme ale můžeme říct, že mezigenerační rozdíly ve výkonu jsou malé a jsou situace, kde se neprojeví vůbec. Z naměřených dat, které máme k dispozici, bychom dosáhli stejného výsledku i za použítí procesoru E3-1230v5, který generačně odpovídá původnímu serveru. Měli bychom k dispozici jen 4 jádra resp. 8 vláken. O měřící technice a parametrech, které u serverů sbíráme, napíšeme v budoucnu další příspěvek.
Těšíme se na dobu, kdy se začnou vyrábět 32GB DDR4 ECC Unbuffered moduly, které nám dovolí podobného zrychlení webů a aplikací docílit i na serverech, kde je požadavek na 128GB paměti a kde jsme tedy vázáni na procesory z řady E5.