Vliv frekvence procesoru na rychlosti webu

Frekvence CPU vs rychlost webu

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í.

Představení aplikace

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ředstavení konfigurací serverů

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

Výsledek

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.

Graf rychlosti odpovědi webu

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.

Závěr

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.