Oct
27
2007

Optimize!

Pogosto opa??am, da so WordPress blogi po??asni kot hudi??… Ne vem zakaj, a ve??ina ljudi ??e vedno ignorira Wp-Cache, ki je nepogre??ljiv WordPress-ov vti??nik. ?e tako mo??an server bo brez konkretne optimizacije strani prikazoval po??asi, preprosto zato, ker je ??as prikazovanja strani v veliki meri neodvisen od procesorske mo??i. WordPress je stabilna platforma in velika ve??ina poizvedb na podatkovni bazi (query-ev) je optimizirana oz. vsaj solidno indeksirana. Tu gre za milisekunde, kar se ti??e procesorja… Problem je drugje. Spodobno napimpan WordPress, med katerega ??tejem tudi p4b.nu, se ob vsakem prikazu strani pove??e z zunanjimi storitvami in s tem obogati vsebino. Na?? blog se tako vsaki?? pove??e na Flickr, del.icio.us, Google Calendar in Google Analytics. Od teh storitev dobi odgovor in nato vse skupaj spremeni v obliko, ki jo razume va?? brskalnik (HTML). Vse skupaj je, seveda, precej po??asno in odvisno od trenutne odzivnosti omenjenih storitev.

Del pohitritev se nana??a na t.i. frontend optimizacijo (*1), o kateri sem ??e pisal. Bistvo pa je v cache-ingu in to??no to vam Wp-Cache omogo??a. Surovi (raw) HTML se vedno nalo??i neprimerno hitreje kot (PHP) skripta. S tem izgubite del odzivnosti (npr. na?? #SURFER se zato posodobi vsake 2 uri), a prednosti so velikanske. Dolo??enim skriptam (npr. #CACTUS) se mora Wp-Cache izogniti, saj bi bilo druga??e glasovanje v veliki meri onemogo??eno. ??e za serviranje PHP-ja in MySQL-a ??e vedno uporabljate Windows-e, resno premislite o smiselnosti svojega po??etja. Ko sem izvajal meritve na svojem ra??unalniku, je bila obremenjenost procesorja pri vsakem zahtevku v povpre??ju vi??ja za okoli 40% v primerjavi z Linuxom. Enak hardware-a, enaka Apache konfiguracija, ekvivalenten php.ini. Za dodatno optimizacijo (na Linux-u z in??taliranim Wp-Cache) pa lahko uporabite ??e tale ukaz:

(predpostavimo, da je /var/www/blog/wp-content/cache) va?? cache direktorij:

#> mount -osize=50m -t tmpfs tmpfs /var/www/blog/wp-content/cache

Tako Linux “prepri??ate”, da ima vsebino va??o bloga (HTML) v RAMu, ??e je to le mogo??e. Hitrost tega je neprimerno ve??ja, kot povpre??no branje trdega diska. Velikost pomnilnika je z zgornjim ukazom nastavljena na 50MB in jo lahko po ??elji spremenite. Seveda ga lahko malo “pre??ejkate” in premaknete v /etc/fstab in /etc/rc.local ter s tem zagotovite, da se bo izvedel ob vsakem ponovnem zagonu stre??nika. Lahko pa uporabite tudi memcached.

Koliko pa s takimi triki dejansko pridobite? Ogromno. Na?? website te??e na ve?? kot 6 let starem AMD Athlonu (ostalih specifikacij raje ne bom razkril, ker bi se smejali) in povpre??ni VDSL povezavi. Ista ki??ta gosti hkrati ??e 10 drugih spletnih strani, FTP stre??nik, mail stre??nik, DNS stre??nik in monitoring orodja, slu??i mojim dnevnim torrent potrebam in vsako soboto avtomati??no stream-a najnovej??i Solid Steel, ki ga pretvori v iPod-u doma?? mp3 format. Brez slednjega pa?? ne gre… ker se cenim. :)

(*1)
Leta nazaj sem naletel na spletno stran, kjer so naredil kapitalno napako in Javascript kodo za povezavo z Google Analytics vpisali v glavo strani, med ostale skripte. V najbolj nepravem trenutku je Google Analytics dobesedno “crknil” in stran se preprosto ni prikazala. Nauk zgodbe je, da Google Analytics premaknete tik pred zaklju??ni </body> tag in s tem zagotovite pravilno nalaganje ostalega dela strani.

Objavil: besso        Kategorije: Uncategorized        Brez komentarjev

Brez komentarjev »

RSS feed za komentarje na to objavo. TrackBack URI

Komentiraj objavo

Èe želiš komentirati, moraš biti prijavljen.




Creative Commons License

p4b.nu is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Slovenia License.

Mashin' it BrandNu style | We also Twitter | Contacts, inquiries and DJ bookings via contact [at] p4b.nu
Design by Ozren :: template by #kruh :: developed and hosted by APPoteka
Inspired by WordPress - Code is poetry
Entries and comments feeds Valid XHTML and CSS ^Top^