Optimalizace PHP skriptů v praxi Mozektevidi.net - Mozektevidi.net.

Optimalizace PHP skriptů v praxi

Čím déle pracuji s PHP skripty, tím více pronikám do tajů PHP. Protože není výkon zadarmo, je nutné skripty neustále ladit a zrychlovat. Vyplatí se to. Grafy výkonu.

image of Optimalizace PHP skriptů v praxi

Jak vypadá takový výsledek v praxi?

Když už máme za sebou optimalizaci SQL dotazů, lepší metody s obrázky a víme, jak ladit PHP kód, můžeme se podívat na výsledek.

CPU Usage – vytížení CPU

CPU usage vytižení CPU

Interrupts and context switches přerušení

interrupts přerušení

irqstats

irqstats

Load – Vytížení CPU

Load CPU

Mysql threads

Tady je viděť, že optimalizace proběhla jenom na apache, databáze se optimalizace nedotkla, počet SQL dotazů je stejný.

mysql databaze mysql threads

Těchto výsledků jsem dosáhl ještě na sterém serveru. Stačilo zjistit ztráty na výkonu, opravit je a naprogramovat si kešování (caching) výsledků. Spokojenost.


autor článku OS | datum publikování 11.srpen.2008 09:18 | služby a články co mohou být užitečné služby |

Kometáře

#1 Tonda wwwwww.netzona.cz

Jeste bys mel ukazat pocet dotazu na SQL a LOAD neni jen CPU. reaguj

datum 11.08.2008 10:53

firefox windows-xp

#2 Poky wwwpoky.sotworld.net

Hezký grafy, jen vědět co znamenaj :D (joke) reaguj

datum 11.08.2008 11:04

firefox gnu-linux

#3 TondaD wwwblog.antonindanek.cz/

A co je to za přerušení? Ty se totiž používají mnohem na nižších úrovních: 1) V případě, že nějaká periferie vyžaduje obsluhu. 2) V případě chyby HW. 3) Programátor taky může volat přerušení, ale skoro vždycky jde o práci s nějakou periferii nebo s nějakým obvodem.

Takže nějak moc nechápu, jakou to má souvislost s generováním webu, co ty přerušení vytvářelo a co ty přerušení vlastně obsluhovaly. reaguj

datum 11.08.2008 11:59

opera windows-xp

#4 Tonda wwwwww.netzona.cz

reakce na »TondaD«: To je jednoduche. Obsluha disku v zavislosti na zpracovani webu www sererem a v zavislosti treba i MYSQL na cteni z diskua vytvareni TMP tabulek. reaguj

datum 11.08.2008 12:31

firefox windows-xp

#5 TondaD wwwblog.antonindanek.cz/

reakce na »Tonda«: Jenom na to je jich nějak moc ne. Víc jak 15k přerušení za vteřinu? Disk se přece neobsluhuje pořád, od čeho je RAMka. reaguj

datum 11.08.2008 12:58

opera windows-xp

#6 lo3k wwwwww.pisem.cz

Vskutku zajímavé...

reakce na »Tonda«: <==> reakce na »TondaD«: => to nechápu :( reaguj

datum 11.08.2008 16:05

opera windows-xp

#7 Tonda wwwwww.netzona.cz

reakce na »TondaD«: dam ti priklad je to vcelku proste. Pokud a olda dejme tomu 300 dotazu na sql za vterinu a ma v databazi spatnee zvolene indexi nebo ma moc slozite dotazy a v mysql ma male buffery tak muze doit k tomu ze neni uspokojeno cteni a dotaz z ram, ale dojde kvytvoreni tmp table ze ktere je posleze cteno. Pri kazde navsteve stranek muze take dochazet k jistemu ukladni do sql. Coz nam zase zncci co? Ze opet dochazi k pristupu na disk. Potom tu mame cteni samotnych ssouboru z disku. Pokud ma v adresari moc souboru zvysuje to take zatez. Dalsi je trafic kteery nam obslhuje sitovka a v neposledni rade raid radic ktrery provadi sinchro. Takze oodladenim zbytecneho cteni zdisku muze tyto hodnty preci ovlivnit. reaguj

datum 11.08.2008 16:38

safari symbian

#8 Vojtěch Havel wwwdisposed.xf.cz

kdyby jsi mi ukázal jen ty grafy a nenapsal, že v době zaznamenané grafem jsi provedl optimalizaci PHP, tvrdil bych celkem s jistotou, že tu výraznou změnu v grafu způsobilo nějaké omezení působnosti ACPI - co se změnilo:

první graf - snížil se počet irq, tedy požadavků o přerušení od hardware - což může mít s ACPI něco společného + system, což by mohlo souviset s obsluhou irq a ACPI. I/O operace se téměř vůbec nezměnily, tzn. nic, co se týká operací se soubory se změnit nemohlo

druhý graf - přerušení, ano, to je ruku v ruce se sníženou dobou, kterou trávil procesor vykonáváním systémového kodu

třetí graf - jasně, tady to vidíme, před změnou acpi volalo služby jádra často, nyní skoro vůbec

... nejde mi do hlavy, jak mohla optimalizace php scriptů tolik snížit náročnost činnosti ACPI, přitom ostatních úkonů se téměř nedotkla (I/O operace, zátěž mysql), takže mám pořád podezření, že za ten rozdíl před/po může nějaká změna v ACPI... reaguj

datum 12.08.2008 16:11

firefox windows-vista

#9 Vojtěch Havel wwwdisposed.xf.cz

když nad tím dumám, začínám míň a míň věřit v to, že tyhle změny mohla způsobit optimalizace PHP scriptů - opravdu jsi nic nedělal v té době s ACPI? nebo nějaká hardwarová změna...? reaguj

datum 12.08.2008 16:16

firefox windows-vista

#10 Vojtěch Havel wwwdisposed.xf.cz

reakce na »Vojtěch Havel«: ... protože se téměř vůbec nezměnila doba, kterou procesor trávil vykonáváním kódu v user-space. A právě v user-space imho php vykonává většinu práce.... reaguj

datum 12.08.2008 16:18

firefox windows-vista

#11 MzK wwwmozektevidi.net

reakce na »Vojtěch Havel«: Opravdu jsem nic neměnil na hardware, nepřidával jsem RAM, neměnil CPU a neměnil jsem nastavení. Prostě jsem objevil velkého žrouta výkonu, kterého jsem odstranil.
Tolik přerušení bylo, protože se často šahalo na disk, dobře to vystihl reakce na »Tonda«: Tonda. reaguj

datum 12.08.2008 22:22

opera gnu-linux

#12 Vojtěch Havel wwwdisposed.xf.cz

reakce na »MzK«: podle grafů se ale doba trvání I/O operací moc nezměnila, na grafech jde jasně vidět, že zátěž serveru tvořily irq (čtení/zápis dat na disk tak velký počet irq snad netvoří, ne?) a obsluha přerušení, které si vyžádalo ACPI. Pořád nechápu souvislost mezi optimalizací PHP scriptů a těmi grafy...ale jestli to říkáš, asi v tom nějaká souvislost bude... reaguj

datum 12.08.2008 22:52

firefox windows-vista

Nové kometáře nejsou povolené.