Optimalizace PHP skriptů v praxi

http://mozektevidi.net/up/php-logo.jpg

Čí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.
Celý článek je zveřejněn na mozektevidi.net/clanek/optimalizace-php-skriptu-v-praxi

#1 Tonda webnetzona.cz emailcapousek©netzona.cz

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

date 11.8.2008 Po 10:53
#2 Poky webpoky.sotworld.net

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

date 11.8.2008 Po 11:04
#3 TondaD webblog.antonindanek.cz/ emaildanek©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.

date 11.8.2008 Po 11:59
#4 Tonda webnetzona.cz emailcapousek©netzona.cz

reakce na »TondaD 3«: 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.

date 11.8.2008 Po 12:31
#5 TondaD webblog.antonindanek.cz/ emaildanek©antonindanek.cz

reakce na »Tonda 4«: 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.

date 11.8.2008 Po 12:58
#6 lo3k webpisem.cz

Vskutku zajímavé...

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

date 11.8.2008 Po 16:05
#7 Tonda webnetzona.cz emailcapousek©netzona.cz

reakce na »TondaD 5«: 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.

date 11.8.2008 Po 16:38
#8 Vojtěch Havel webdisposed.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...

date 12.8.2008 Út 16:11
#9 Vojtěch Havel webdisposed.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...?

date 12.8.2008 Út 16:16
#10 Vojtěch Havel webdisposed.xf.cz

reakce na »Vojtěch Havel 9«: ... 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....

date 12.8.2008 Út 16:18
#11 MzK webmozektevidi.net

reakce na »Vojtěch Havel 9«: 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 7«: Tonda.

date 12.8.2008 Út 22:22
#12 Vojtěch Havel webdisposed.xf.cz

reakce na »MzK 11«: 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...

date 12.8.2008 Út 22:52

© 2008 Oldřich Šálek Zásady ochrany osobních údajů