PDA

Pogčedajte punu verziju : Keširanje includovanih fajlova


ivanhoe
07. 02. 2006., 06:50
Gledam da malo smanjim load na jednom serveru koji odrzavam, pa sam mislio da stavim neki od php "akceleratora" (extenzije koje kesiraju jednom kompajlirane inkludovane fajlove). Koliko sam shvatio glavni u igri su APC, zendOptimizer i eAccelerator... verovatno ima jos neki...

jel koristio neko nesto na ovu foru? Cini mi se da je Ilija pominjao par puta nesto oko zend extenzije?

ono sto me zanima je pre svega da li postoji neki negativni side-effect instaliranja ovih extenzija?

Procitao sam recimo negde da APC ne proverava da li su fajlovi promenjeni (radi brzine) i da to onda zahteva da se restartuje apache posle svake promene fajlova. Slican zahtev ima i mod_perl i vec znam koliko to moze da nervira kod rada.

Da li mozda postoji neko mesanje globalnih promenjivih iz vise skripti ili tako neka glupost kao posledica tog keshiranja?

Dalje procitao sam da ZendOptimizer i eAccelerator rade zajedno, dok APC ne radi sa Optimizerom u kombinaciji, ali je zato brzi od prethodne kombinacije. Da li mi optimizer treba za nesto, posto je dedicated server u pitanju i samo ja trenutno imam root-a, pa nema potrebe da kod encodujem radi zastite copyrighta.

Da li ce ostale extenzije da nastave da rade normalno ako stavim nesto od ovoga?

Da li je moguce izolovati keshiranje samo za jedan virtual host ?

I tako, jednom recju recite mi sve sto znate o ovome, jer ako oborim slucajno server ode mi glava :P

bojan_bozovic
07. 02. 2006., 07:54
mozes da snimis fajl u nesto.html i zavrsis. Prilikom UPDATE upita prebrises fajl. Ne znam sta ce ti neki "eacceleratori" za takvu stvar. To je ok, ako se strana mnogo ne menja, dakle mnogo SELECT, malo UPDATE.

zextra
07. 02. 2006., 11:19
ja koristim eAccelerator, rad je potpuno transparentan, s tim sto recimo smarty radi u proseku 2-2.5x brze sa eAcceleratorom, tako da nemam nameru da ga deaktiviram. Mozes opusteno da ga stavis kao server-wide ekstenziju (posto se instalira kao zend extenzija). Automatski proverava zadnji modification time svakog fajla koji treba da parsuje. Jasno se vidi da scriptu koji si upravo izmenio treba znacajno duze da se parsuje (ali ne duze nego sto bi mu inace trebalo bez akceleratora), ali onda server load opada poprilicno. Samo obrati paznju - (ne znam za ostale, ali je za eAccel tako) sto mu vise memorije das, manje ce se desavati rekompajliranje skripti (cudna mi cuda :))a po defaultu mislim da alocira nekih 50mb za cache. Uspeo sam da popunim tih 50mb sa forumom u localhostu i jos par nekih skripti (a ne secam se tacno, mozda je neka od skripti sasvim slucajno bila typo3, sto objasnjava zauzece kompletnog cache-a :D)

Opet kazem, ne znam za ostale, ali eaccel imas i za win, pa mozes isprobati kako radi u kom god da si okruzenju.

@bojan: nisi shvatio poentu pitanja. Mozes ti da imas optimizovan kod koji radi keshiranje svega (ako ti je bas stalo do toga), ali ne mozes da skratis vreme potrebno php-u da tvoju skriptu parsuje svaki put kada je ti pokrenes. Tu uskacu akceleratori jer oni cuvaju binarnu verziju tvoje skripte (koja je vec sazvakana za engine), pa nema potrebe da se ceo fajl opet cita i parsuje svaki put kad zahtevas skriptu, vec akcelerator samo prilozi binarnu verziju i gotov posao.

Ilija Studen
07. 02. 2006., 11:49
Imam licencu za Zend Encoder tako da se nisam cimao sa ostalim rešenjima. Čuo sam za njih, čuo da APC treba da bude u paketu sa PHP6, čuo da mnogo ljudi hvali i koristi eAcc i to je manje više to. Znači, samo čuo i čitao.

Praktično što se Zend Encodera tiče, ti svoju skirptu proguraš kroz encoder i dobijene fajlove uploaduješ. To je to. Encodeovani fajlovi su manji od 10% - 50% od izvornih fajlova, a ako imaš skripte koje koriste veliku količinu masivnih fajlova (npr Propel generisane klase) onda štede jako mnogo vremena pri parsiranju i dodaju veliko obrzanje (poznato je da PHP guta memoriju kad treba da parsira veliku količinu fajlova i da mu tad izrazito padaju performanse). Čak je postalo pravilo da se takvi skriptovi gotovo isključivo distribuiraju u enkodovanom obliku (iz navedenog razloga).

Na neke mane što se Zend Encodera tiče nisam naišao, osim na to da je jedna od skorijih verzija razbijena (postoje razni "dezender" alati) i da je Zend odgovorio krajnje neprofesionalno na celu priči: izbacili su novu verziju i rekli developerima da plate $1400 upgrade. Jako seljački, ali Zend je inače poznat kao kompanija koja želi da dođe do para na svaki moguć način.

zextra
07. 02. 2006., 12:02
Oce ljudi malo kajmaka kad vec sve ostalo sto rade u vezi PHP-a ne mogu (i nece) da naplate...

ivanhoe
07. 02. 2006., 22:48
nista, probacemo sve redom, pa da vidimo sta mi najbolje fercera, nema druge :)

zextra
07. 02. 2006., 23:13
Prvo sto dohvatis to ces verovatno i koristiti. Ali bez testiranja nista...