Ladění výkonu webserveru

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Ladění výkonu webserveru
« kdy: 01. 05. 2014, 13:14:18 »
Dobrý den,

na webovém serveru (apache, mysql, php), které hodnoty vám přijde na mysl že mohou mít největší vliv na dobu načtení webové stránky?

mluvíme o webovém serveru, který hostuje 100 webových stránek, většinou klasické wordpress blogy.

Mám Keep Alive On. Teď chci udělat nějaký test, pohrát si různými hodnotami Apache, PHP, takže pokud můžete poradit na které PHP, Apache, Mysql atd hodnoty se zaměřit? Nebo znáte li dobré linux web pomůcky k tomuto testování
« Poslední změna: 02. 05. 2014, 13:34:48 od Petr Krčmář »
Linux nováček - CeskeForum.com


student

Apache
U vypoctovo jednoduchsich stranok je 99% typicky o tom, ake mate MPM (vratane ich nastavenia) a ako izolujete uzivatelov medzi sebou. Je snad jasne, ze ked sa bude spawnovat v extreme 1 proces na kazde spojenie, tak to bude mat iny vykon, ako ked sa proces pouzije znovu.
Potom byva dost narocna direktiva AllowOverride.

PHP
Pomaha cache (APC)

SQL
Treba nastavit buffere a cache. Ked sa to podari nastavit dobre, tak sa na disk chodi len commitovat.
Odporucam vyskusat viac hodnot - zjednodusene povedane ale staci vsetky buffere a cache zvysit.

Tooly
ab, jmeter

Rychlost načtení webu závisí na několika faktorech:
1) rychlost zpracování (accept) spojení a předání požadavku volnému vláknu či procesu webserveru
2) rychlost zpracování požadavku (provedení PHP skriptu, odeslání SQL dotazů do databáze, generování HTML kódu)
3) rychlost přenosu výsledného HTML kódu k uživateli po síti
4) rychlost uživatelova počítače a prohlížeče který stránku vyrenderuje
5) počet dalších požadavků na server ze stejné stránky (např. načítané obrázky, javascripty, css soubory, atd)

Pokud chápu výše uvedenou posloupnost zpracování, můžu z toho udělat závěry co načtení webu zrychlí:
1) do nastavení webservereu bych nehrabal. Defaultní hodnoty nastavené hostingem by měly být dost optimální
2) rychlost provedení PHP nebo SQL příkazů neovlivníte, pokud používáte wordpress či jiné existující softwary. Dá se předpokládat, že autoři wordpressu mají ten software taky odladěný, takže zde bych do ničeho taky nehrabal.
3) rychlost s jakou se data pošlou z webserveru ke klientovi lze ovlivnit jejich kompresí, a toto nastavení podstatně zrychlí načítání stránek uživatelem. Nastavit lze na úrovni aplikace (pravděpodobně nějaký setting ve wordpressu) či na strane php.ini (output_handler nebo zlib.output_handler a pod.), nebo na straně httpd.conf (SetOutputFilter DEFLATE)
4) rychlost renderingu stránek na počítači uživatele bude záviset na použitém templejtu pro wordpress, stejně tak počet dalších požadavků poslaných klentem bod 5), tudíž tohle jde ovlivnit volbou vhodného designu / templejtu, výsledný efekt ale nebude zas tolik rozdílný. Pokud weby zobrazují hodně obrázků, je vhodné použít na serveru SSD disk, z kterého se posílají, jinak může docházet k zdržování vlivem čekání na volné IO na disk.

Dá se předpokládat, že komprese odesílaných dat už je na serveru zapnutá, takže shrnuto a podtrženo s rychlostí načítání stránek neuděláte nic moc.

1) PHP - opcode. bez toho nema cenu provozovat cokoliv. ale pozor! zasada a zaklad je, ze musi mit vzdy v nastaveni pridelene vice RAM nez vyuzije. jinak to zase stejne chcipa na I/O.

2) MySQL - nepouzivat MySQL :) MariaDB nebo Percona, namaxovat innodb pool apod. google je toho plny. snazim se maximalne vyficet myisam a jet jen innodb.

3) cachovat. cachovat. cachovat. tady jen pozor na kombinaci memcache vs memcached. jsou tam znacne rozdily v rychlosti, opet google poradi kde najit hotove benchmarky. s tim souvisi i reverzni proxy. nekdy na to lze s vyhodou pouzit treba mongo nebo redis.

Pokud u cteni premyslis tak se asi ptas - a kde na to vezmu RAM? No ptas se dobre :) Nikdy a nikde jsem nezazil, ze by nestacil procak, vzdycky problemy vyresilo pridani RAM a zvyseni tech limitu. proto pouzivam vpsfree :)

Cele je to o tom, jestli jsou to tvoje weby a znas je a mas je pod kontrolou nebo ne.
Děkuji za možnost editace příspěvku.

neznalek

Diky za shrnuti, otazka jeste jakou opcode pouzivat, bavme se o php 5.5 ktere se teb diky ubuntu 14.04 LTS bude asi dost nasazovat, jestli to dobre chapu tak je preferovano opcache namisto apc, jesti vubec apc pro 5.5 existuje?

MySQL - opet se vracim v ubuntu ponechalo si mysql 5.5, myslite si, ze lepsi je tedy pouzit mariandb 10 pro produkcni hosting nebo
pouzit percona (ktere je take jiz soucasti 14.04), ja osobne asi budu volit Perconu kvulu rychlosti a hot innodb backups.

Memcache nebo memcached ? tak kterou tedy doporucujete?

php session? nechat je uchovavat na disku nebo napr. presunout take do memcache pripadne db nebo to vubec nema smysl?

Autor puvodniho dotazdu pise neco o 100 webech na wordpressu, slysel jsem ze wp je nocni mura pro hostingu, nemel by tedy jeste nasadit napr. varnish?


1) PHP - opcode. bez toho nema cenu provozovat cokoliv. ale pozor! zasada a zaklad je, ze musi mit vzdy v nastaveni pridelene vice RAM nez vyuzije. jinak to zase stejne chcipa na I/O.

2) MySQL - nepouzivat MySQL :) MariaDB nebo Percona, namaxovat innodb pool apod. google je toho plny. snazim se maximalne vyficet myisam a jet jen innodb.

3) cachovat. cachovat. cachovat. tady jen pozor na kombinaci memcache vs memcached. jsou tam znacne rozdily v rychlosti, opet google poradi kde najit hotove benchmarky. s tim souvisi i reverzni proxy. nekdy na to lze s vyhodou pouzit treba mongo nebo redis.

Pokud u cteni premyslis tak se asi ptas - a kde na to vezmu RAM? No ptas se dobre :) Nikdy a nikde jsem nezazil, ze by nestacil procak, vzdycky problemy vyresilo pridani RAM a zvyseni tech limitu. proto pouzivam vpsfree :)

Cele je to o tom, jestli jsou to tvoje weby a znas je a mas je pod kontrolou nebo ne.


Re:Ladění výkonu webserveru
« Odpověď #5 kdy: 02. 05. 2014, 18:16:57 »
php 5.5 = zend.
Děkuji za možnost editace příspěvku.

Re:Ladění výkonu webserveru
« Odpověď #6 kdy: 02. 05. 2014, 18:18:06 »
memcache / memcached ted z hlavy nevim, hod to do google "php memcache memcached benchmark"
Děkuji za možnost editace příspěvku.

samalama

Re:Ladění výkonu webserveru
« Odpověď #7 kdy: 02. 05. 2014, 21:35:40 »
memcache / memcached ted z hlavy nevim, hod to do google "php memcache memcached benchmark"

memcached (daemon) a k tomu memcached php modul (nie memcache)...