Wordpress (LAMP) oldal teljesítményoptimalizlás - hogyan?

Üdv Mindenkinek!

A felállás sokaknak ismerős lehet: adott egy Wordpressben működtetett portál, full átlagos kialakítás szempontjából. Ami úgy általában a WP-t illeti, évek óta már nem is követem, hogy merre tart, csak azt látom, hogy egyre erőforrásigényesebb lett, az meg hitkérdés, hogy mennyire van értelmesen összetákolva az egész.

Felmerült az igény, hogy az oldal egy VPS-re költözzön, ezért beállítottam egy olyan tesztkörnyezetet, amiben olyan erőforrásokkal gazdálkodhat futás közben az oldal, amilyenek a VPS-en lesznek majd, és azt látom, hogy tényleg zabálja az erőforrásokat. Na akkor röviden: kinek milyen konkrét tapasztalatai vannak, hogyan érdemes teljesítményre optimalizálni a WP-t ideértve mindent, azaz az Apache-t, az adatbkiszolgálót, a PHP-t, érdemes-e valamilyen gyorsító plugint alkalmazni [mármint a WP-hez, mert azt láttam, hogy az egyik ilyen inkább csak ront a helyzeten] és végül a Cloudflare-t hogyan érdemes beállítani hozzá. Azaz mit érdemes cachelni és mit kimondottan nem érdemes, végül pedig a lényeg: ahogy ez lenni szokott, magára a vasra az oldal működtetői nem nagyon tudnak költeni, a látogatók száma pedig egész szépen növekszik. Ami végképp kiküszöbölendő, hogy belassuljon || lehaljon az oldal. Ötletek?

Hozzászólások

[off]
mert ha elkéred az árát, akkor nem lesz wp-s ügyfeled. ha nem csinálod meg, akkor sem. mindkét esetben úgy távoznak tőled, hogy te egy utolsó szemétláda lehúzós fasz vagy.
[on]
a legtöbb felhős, filléres tárhelyszolgáltató nem nyalogat semmit sem, nemhogy wp-t. aki megteszi, az meg nem fillérekért, ez az összeg meg mindig túlmutat a wp-s webhely gazdái által erre szánt összegen.

--
Aspire E1-530
"...és micsoda zajt csapott!"

Na most ilyen szempontból eléggé spéci az eset - ugyanis olyan fontosságúnak találtam az ügyet, amit képviselnek, hogy elvállaltam az oldalt önként, persze menet közben rájöttem, hogy szakszerűen mívelve tényleg többet kell foglalkozni vele pár óránál, de már mindegy.

Persze van egy véleményem azzal kapcsolatban, hogy több, kimondottan nagy teljesítményű CMS miért nem annyira erőforrásigényes, a kommerszek kommersze, a Wordpress pedig miért igen. De szerintetek? //konteó is jöhet

tudod, "én nem hiszek az összeesküvés-elméletekben, helyette inkább gyártom őket" :)
hype körülötte, mint ubuntu vagy mac esetében. megáll konteóként is, meg a realitások talaján is.
nálunk ami kevés wp van, azt megfizetik, mi "irányítunk", nem is tördelik őket (illetve hiábavaló próbálkozások vannak csak).
(azt az egyet amelyik kívül esik ezen, legutóbb decemberben törték meg...)
terhelés terén napi 700-2400 közötti egyedi látogató van (összesen 7 wp-ről ugatok), a fizikai vasak (még) bírják úgy, hogy emellett több, ettől magasabb látogatottságú weboldalak pörögnek.

--
Aspire E1-530
"...és micsoda zajt csapott!"

https://wordpress.org/plugins/wp-super-cache/
Statikus HTML-eket generál, létező cache fájl esetén pedig ezekből szolgálja ki az oldalt, ezzel csökkentve a terhelést, és gyorsítva a válaszidőt.
A cache ürítése történhet fix időpontokban, időszakosan, vagy soha. Ha semmi dinamikus tartalom nincs, jó lehet a soha is, én egy időjárásos widget miatt fél órás rotációt használok az egyik oldalamon. Egy másikon nincs lejárat, és két napot ment kihalt MySQL-lel, úgy hogy nem tűnt fel az olvasóknak. Beállítható, hogy új poszt esetén is törlődjön a cache, ami mindenképp javallott.
A cache fájlok teljesen újraépülhetnek változás esetén, de az adott lap cache létrejöhet első megnyitásra is. Én a peakek elkerülése végett az utóbbit használom.
Cloudflare-ben agresszív cache-elést használok, minden gond nélkül. Ha szükséges, részletesen is megnézem.

Bye Bye Nyuszifül - DigitalOcean referrer, 10$ kezdő kredittel - <3 openSUSE, Ubuntu, KDE <3

Igen, én is azzal használom.
Ha a PHP így is szűk keresztmetszet, érdemes lenne kipróbálni, megy-e a WP abban a kiépítésben is HHVM-mel?
Esetleg az Apache helyett nginx is megérne egy kört.

Bye Bye Nyuszifül - DigitalOcean referrer, 10$ kezdő kredittel - <3 openSUSE, Ubuntu, KDE <3

reverz proxyt mondta mar valaki? Bar ha a vasra "nem nagyon tudnak kolteni", akkor nem tudom, mirol beszelunk. Pusziert sehol nem kap egy 5 9-es sla-ju HA clustert...

--
"Van olyan ember sok az oldalon, akinek a kommentjeinek 100%-a zaj, oket miert nem kommentelitek ilyen lelkesen?" (hrgy84)

Ha csak wordpress van, nem lenne érdemesebb egy olyan szolgáltatóval foglalkozni, aki wordpress kiszolgálással foglalkozik? Pl wordpress.com 100$ ért ad éves megoldást, 300$-ért meg ecommerce-t is.

szerintem is ez lenne az ideális megoldás, legalábbis a kis költségvetésből és (viszont) az elvártakból kiindulva. de ha mindenképpen saját maguk/magatok által adminisztrált rendszeren akarjá(to)k futtatni, akkor még a lentebb említett wp super cache mellé a varnisht javasolnám. a 4-es verzió a főbb disztrókhoz már csomagból is elérhető (csak hogy ne kelljen vele sokat szenvedni), a beállítása sem túl bonyolult alapfokon (kering hozzá jó pár wp fókuszú alap konfig is a neten, ami kezdetnek megfelel), és komoly terhelést le tud venni a szerverről. a további hívószavakat (memcache, opcache, fpm, expire stb.) meg már andrej leírta.

kit érdekel, hogy mennyire zabálja...
válaszol elfogadható idő alatt vagy sem?
ha nem, akkor általában a mysql szokott tetű lenni, illetve a cachelés szokott elrontva lenni.
--
Gábriel Ákos
http://ixenit.com

Ha van egyedi beallitasio opcio, pl. vps, akkor nagyon fel lehet tuningolni a WP-t. Ezekre erdemes figyelni:
- webszerver lighttpd vagy nginx izles szerint
- erdemes a PHP-t fpm modban futtatni
- w3 total cache modul memcached-vel es ez mindent szepen tud intezni
- ha akkor az igeny, akkor a cloudflare-t is be lehet ele tenni
- mysql beallitasok hangolasa, buffer meretek foleg, ebben a mysqltuner nevu tool segit
- minden, de tenyleg minden, nem hasznalt es folosleges modul lekapcsolasa

De még mennyire: a WP-ben Super Cache átállítottam a működést úgy, hogy mod_rewrite szabályokkal trükközzön, a sebesség 6-7-szeresére növekedett.

Amúgy amit a Google Webmaster Tools summaryként kiköp a végén, értelmezni is tudni kell, ugyanis van, amikor a lap működése szempontjából irrelenáns dologkra hívja fel a figyelmet, SEO-szempontjából pedig erősen előnyben részesítettek a jól feltérképezhető, gyorsan töltődő lapok, de pl. még az olyan nagyobb helyek is elképesztően alacsony pontszámot kapnak, mint a 444.hu

Én feltenném mondjuk az xhprof -ot és kielemezném, hogy melyik hívás/hívások a lassúak, majd optimalizálnám. Függvényhívás szinten kapsz futási időket és fogod látni pontosan, hogy melyik a bibis. Szerintem megéri.

Sajnos a problémáról nagyon keveset írtál.
Egy weboldal megjelenését általában úgy szokták az átlag netezők nézni, hogy milyen gyorsan jelenik meg az oldal, kattintástól nézve. Ez üzemeltetés szemszögéből két részre osztható, az egyik az oldal generálás, a másik az oldal megjelenítés. Egy rosszul elhelyezett .js fájl, akadályozhatja az oldal megjelenést, és egy lassú kiszolgáló pedig akadályozhatja a weboldal generálását.

Szerintem alapvetően két választásod van:
1. Nem nyúlsz bele a WP forrásába, és próbálod WP és futtató környezet szinten gyorsítani.
2. Belenyúlsz a WP forrásába, és ugrik a rugalmasság

A második megoldás biztos eredményt produkál, és kb. 100-300x -os oldalgenerálási gyorsulást fog eredményezni processzortól függetlenül.

1.
Keresel olyan szolgáltatót, aki jártas WP futtatásban, és tud segíteni a beállításban. Vannak gyorsítótárai, terheléselosztója a kiszolgáláshoz, és esetleg az oldal nagy részét statikusként szolgálja ki.
Ha gondolod szólj, és szívesen segítünk, akár ki is próbálhatod a szervereinken.

Mindenképp javaslom, az Nginx PHP-FPM alapú kiszolgálást, és hogy cache-ből szolgálja ki a szerver a PHP fájlokat.

2. Az admin felülete maradhat, ahhoz nem kell nyúlni, egyszerűen a frontend részt kell kidobni, és célirányosan megírni az adott weboldalhoz. Mivel a dizájn adott, így csak az alap kapcsolódásokat, és a megfelelő helyre való beillesztést kell megcsinálni. Ezzel az alapmegoldással a generálási időben kb. 200x-os gyorsulást tudsz csinálni. Ha gyakran változó adat, akkor kb. 100x-os, de ha csinálsz 1db cache táblát, ahova összegyűjtöd a megjelenítő adatokat normálisan időzítve, akkor kb. 300x-os gyorsulást fogsz elérni, vagyis ezred másodpercekben lesz mérhető az oldal generálási ideje.
Az optimalizálásnál érdemes arra figyelni, hogy tényleg csak a használt elemeket (.css,.js) töltse be.

Szívesen segítek konkrét tippekkel, ha adsz URL-t, ahol az oldalt meg lehet nézni.

Valamennyire programozni kell tudni, de az biztos, hogy nem elegendő a WP-t telepítem két kattintással ismeret.
Ezt azért nem mondanám rá, de a rugalmasságnak ára van.

Ha szeretnéd, hogy egy lassú WP oldalad gyors legyen, akkor keress meg, szívesen adunk ajánlatot a gyorsítására természetesen sikerdíjas konstrukcióban. Lemérjük az oldal generálási idejét előtte és utána, valamint megnézzük valamelyik page speed tesztelővel, hogy mekkora az oldal, és hány elemet tölt be.
Pár WP-t még az FB vicces képes megosztások idejéből javítottunk meg célirányosan. Ezek tapasztalati számok voltak.

Hogy oszinte legyek, kicsit mindig keseru a szam ize, mikor ilyesmiket olvasok. Ertem, hogy te ebbol elsz, meg szeretnel sok ugyfelet, de azert nehany celiranyos altalanos tanacsot ha elsutsz, akkor nem nyomjak rad a "spammer" cimket egybol. Ez egy publikus forum, ahol valaki segitseget kert, nem arajanlatot a szolgaltatasaidra. Abbol senki nem fog semmit se tanulni, ha csak az van itt, hogy "keress meg es megoldjuk okosban". Raadasul a kommented akkor is itt lesz, amikor te mar regen nem foglalkozol WordPressel, hanem a gyerekeidet abajgatod, es a hatad kozepere nem kivanod, hogy barki zaklasson barmilyen WP-s oldallal. Viszont ha valami okos tanacsot adnal a reklam helyett, akkor az segitene azoknak is, akik csak idetevednek.

Felre ne ertsd, nem veled van bajom, hanem a jelenseggel, amit kepviselsz. Ket kommentben ket nyilt reklam - es nem tudom, hol a vege. Nekem is van webhostingom, kinlodok, mert lassan jonnek az ugyfelek, de bennem van annyi gerinc, hogy nem hirdetem be uton-utfelen annak, aki segitseget ker, hogy figyelj, itt egy webhosting, gyere hozzank, es anyadbol szende szuzlanyt csinalunk.

A fenti kommented peldaul ugy lehetett volna szebb, ha azt irod, hogy pl. "nezd meg a Google page speed tesztelojevel, esetleg hasznald a Google Web Developer Tools-t". Es akkor ebben van konkret megoldasi tipp is, nem csak az, hogy ird ujra az oldalt (es gyere hozzank, mert mi profin ujrairjuk neked), es egyebkent is gyere hozzank, majd mi segitunk. Ez nem segitseg, ez spam.
--
Blog | @hron84
Üzemeltető macik

Ez nem spammelés.

> adott egy probléma
> tudok rá megoldást
> dolgoznom kell vele
> pénzt kérek érte

Hol itt a gond? Ha valaki webhosztot keres, _és_ a tiéd pont megfelelne a célra, írd oda. Attól, hogy valami pénzbe kerül, még nem lesz automatikusan spam. Az lenne spammelés, ha valaki autót venne, te pedig tolod a webhosztingodat, vagy éppen (ez mostanában elég nagy divat lett a hupon) keret nélküli keretes írásokat posztolsz a blogra.

Varj, nem azzal van a baj, hogy ha dolgoznod kell vele, akkor penzt kersz erte. Nem ertetted meg a problemat.

Egy publikus forumon ha kerdez valaki, akkor a kerdesre adott valasz nem csak neki jo, hanem barkinek, aki a Google/Bing/Yahoo/AltaVista/Foobar keresobol ideteved. Az, hogy "tudok egy megoldast, keress meg privat" az a forum szamara nem kepez erteket, mert nem ad megoldast a problemara. Ennyi erovel tokeletesen feleslegesen van fenntartva ez a portal, siman lehetne egy aprohirdetesi portal helyette "XY problemam van, ha arajanlatod van, keress meg a +36 1 234 5678 szamon".

Nem azt mondom, hogy itt oldjatok meg forumon, foleg akkor nem, ha hosszu, sok adat kell a rendszerrol, barmi. De altalanos pointereket be lehet kommentelni, ami egyreszt jo neked (mert talan nem kell vele dolgoznod), jo a kerdezonek (mert ingyen kap olyan tanacsokat, ami alapjan maga is meg tudja oldani a problemajat, ezzel sokkal tobbet tanulva, mintha valaki megcsinalna - helyette), harmadreszt jo az utanatok jovonek, aki hasonlo - vagy pont ugyanilyen - problemaval rendelkezik, csak epp otlete sincs, merre keresse a megoldast.

El nem tudod kepzelni, mennyire frusztralo az, amikor orak ota keresgelsz megoldast egy problemara es az alabbi harom dolog egyikevel (vagy mindegyikevel talalkozol):
- Feltettek a kerdest, de senki nem akarta/merte/tudta publikusan megvalaszolni, egy darab nyitopost az egesz topic
- Feltettek a kerdest, jott valaki, aki kerte, hogy keresse meg a kerdezo privatban, es ezzel be is fejezodik a szal.
- Feltettek a kerdest, majd par celtalan lovoldozest kovetoen a posztolo beirta, hogy "someone talked me privately and I marked this post solved".

A fenti harom esetben egy kozos van: az informaciotartalma pontosan 0%. Es ez a fajta hozzaallas terjed, mint a pestis. Ertem, hogy dolgozol vele, ertem, hogy a munkadert penzt kersz, ezzel nincs is baj. De a tudasod - reszleges - megosztasa nem kellene hogy penzbe keruljon. Ha pedig penzbe kerul, nem tudom, mit keresel egy ingyenes forumon. Ott a freelancer.com, ott van egy csomo mas erre szakosodott portal, valaszolj meg ott kerdeseket penzert. Ide nem hianyzik ez.
--
Blog | @hron84
Üzemeltető macik

az a forum szamara nem kepez erteket,

mi a forum? Ha az a 20k user, aki regisztralva van, akkor rossz hirem van: a legtobb topik csak egy (ehhez kepest sokkal) szukebb reteg szamara hasznos, tehat A forum szamara erdektelen. Masreszt ha valaki masnak is problemaja van, akkor o is lathatja azt, hogy ha zsebbe nyul, akkor neki is meg lesz oldva. Aztan majd eldonti, hogyan tovabb.

Mondom, a hint-ek, etc megosztasa vagy akar a megoldas kozlese is teljesen rendben van. Ami nincs rendben, az a permanens picsogasod.

- Feltettek a kerdest, de senki nem akarta/merte/tudta publikusan megvalaszolni, egy darab nyitopost az egesz topic

hub+ ez tenyleg kemeny. Gondolom, amikor ilyet latsz, szaladsz haza anyahoz, es a szoknyajanal kizokogod magad. Mondd csak, tenyleg ennyire kemeny az elet? Remelem, nincsenek ongyi hajlamaid.

nem tudom, mit keresel egy ingyenes forumon

mar megint elszaladt veled a paci, es azt kepzeled be magadnak, hogy te vagy itt a sheriff (gondolom, ilyenkor a jelvenyt is felveszed, aztan nyomod a szelfit). Az meg, hogy honnan mi hianyzik vagy nem hianyzik, csak a te nyafidvelemenyed. Vegul is, ahogy mondani szokas, az meg olyan, mint a segglyuk. A te esetedben kb. csereszabatosak is...

--
"el nem birom kepzelni, hogy valakinek keves az 1.7 GB-os kvota" (hrgy84)

szoval te nyomod a nyilt reklamot, az rendben van. De amire te rafogod, hogy az burkolt reklam (es akkor nagyvonaluan ne is firtassuk egyelore az allitas valosagtartalmat), az meg nem koser. Jol ertem, hogy ezt akarod eladni?

--
"el nem birom kepzelni, hogy valakinek keves az 1.7 GB-os kvota" (hrgy84)

Nem posztom vedeni senkit de ebbe mar enis belevauzok.
Attol hogy ott van egy link az alairasaban az egy olyan dolog ami szerintem itt a HUP-on megengedheto. En is meg szoktam nezni sokszor hogy ki hol dolgozik ( mar ha van rola informacio ) ezaltal teljesebb kepet lehet neha alkotni emberekrol.

Eleg sok temaban osszefutok az opbears/uzemelteto macikkal de nem kifejezetten emlekszem olyanra hogy ok ugy foglaltak volna allast valami mellett vagy adtak volna ugy tanacsot hogy benne lett volna a valaszban hogy gyere hozzank komam meg hat megoldjuk irok ra majd arat.
Szoval szerintem te nem erted a problemat amit uzemmaci felvetett. Amit kifogasolt az az volt hogy az kurvara nem segitseg mikor egy topicban lathatolag kis koltsegvetesu vagy magan project celjabol kerdezget valaki es egybol raugranak es ajanlgatni kezdenek szolgaltatasokat.

Ha valaki megis igy gondolja akkor irjon privatot:
"Helo ez eppen a mi szakteruletunk ha nem akarsz szivni a probalgatassal meg a tanacsokkal akkor keress meg bennunket"

szerintem eppenseggel te nem erted a helyzetet, de sebaj, azert vagyok, hogy felvilagositsalak. Engem az opbears konkretan nem erdekel, de ez itt most nem lenyeg. Hanem az egesz komment a felkegyelmu hrgy84-rol szol (btw. remelem, a ti erdeketekben, hogy o max. egy promoter a szignojaval, es nem engeditek semmihez hozzanyulni :-)), aki bort iszik, de vizet predikal.

Azaz jon egy fazon ebben a topikban, es penzert kinal tuningolast. hrgy84 erre kiakad, hogy ez spam, mert hogy a sajat szolgaltatasat nehogy man ebben az egy topikban meg merje emliteni. Erre megjegyzem, hogy "kiskancso, neked az osszes kommented gumimaci reklam, azt lehet?" Ekkora mar persze, mikor szamara is nyilvanvalo, hogy vedhetetlen a kocsogsege, mar csak a szokasos pitianerseg marad tole.

Mondom, en leszarom a gumimacis linket a szignojaban, foleg, hogy nemi basztatas hatasara kepes volt 8 sor helyett 3-ra redukalni. De akkor tan illo lenne kussolnia akkor, ha gedez meg a sajat bizniszet reklamozza.

ps: ha te is gumimaci vagy, ne szivd mellre a gumimacizast...

--
"el nem birom kepzelni, hogy valakinek keves az 1.7 GB-os kvota" (hrgy84)

talan te sem vetted eszre, de a topikindito kerdesere tobben is valaszoltak, amin el tud indulni (tehat az "abbol senki nem tanul" nem allja meg a helyet). Aztan egyszer csak bedobta gezed, hogy o 2 nagysagrenddel gyorsabba tudja tenni a wp-t a tuti modszerevel, de suskaert cserebe. (A suska szo vagy szinonimaja tan el sem hangzott, de probaltam a sorok kozott olvasni :-)).

Erre jon hrgy84 cimbi, es elkezdi jatszani az agyat a maga sajatos modjan. Az sem igazan zavarja, hogy mar a kiindulopont sem az, amit o annak vel, ami utan persze az egesz ervelese fos. De a legszebb az egeszben az, hogy amikor valaki a fejere olvassa a *sajat* visszas viselkedeset, akkor persze atmegy sundisznoba. De hat igy megy ez...

--
"el nem birom kepzelni, hogy valakinek keves az 1.7 GB-os kvota" (hrgy84)

Nesze: http://goo.gl/ViUUsr (bar mondjuk ennel az oldalnal pont nem a statikokkal van baj, hanem a hasznalt pluginokkal. Van par CMS cucc, amik elegge megfogjak a teljesitmenyt, mert hiaba foleg admin-onlyk, a WP nem kepes megallapitani, mit nem kellene berantani)
--
Blog | @hron84
Üzemeltető macik

Ezen az oldalon nem látok oldalgenerálási problémát, csak az alap WP problémákat, hogy minden css és js fájlt linkel minden esetben, még ha arra nincs semmi szüksége. Van egy link amit meghív az oldal, tartalmat nem ad vissza, inkább mintha valamilyen visszajelző link lenne statisztikához. Ez megakasztja az oldalgenerálást, egyébként ezen gyorsítani nem tudok, mert az oldalgenerálási idővel nincs gond.

Pontosítás:
Úgy látom valamilyen első oldalletöltődéskor gyorsítótárba helyező cache rendszert használsz Nginx 1.1.x alatt. Az első oldalgenerálások valóban lassúak, közel 3s körüliek. Az oldalt nem ismerem teljes részletességében, de az biztos, hogy 0.1s alatti oldalgenerálás elérhető cache nélkül a frontend rendszer újraírásával.

1. szarból nem fogsz tudni várat építeni.
2. cache minden létező helyre amit el tudsz képzelni (query cache,reverse proxy(több szinten akár),statikus tartalom generáló pl. super cache.).
pl cf->varnish->nginx+php-fpm mondjuk.
3. eredményként x10sec-es oldalletöltésnek örülhetsz.

php opcode cache méretének növelése?