Inclust Infrastructure, Community & Expert

Inclust Blog

Újdonságok, fejlesztések, akciók, tech hírek

Bejegyzéseink

drupal

Drupal teljesítménytuning

2012. 04. 06. - 09:59

A Drupal üzemeltetése magában sem könnyű feladat. Fokozottan erőforráspazarló rendszer, alapjáraton is sok memóriát eszik, a rengeteg lekérdezést pedig a rengeteg optimalizálás ellenére is megérzi a rendszer. A különböző forrásokból származó (akár beta verziós) plusz modulok feltelepítésével pedig tovább romlik a helyzet. Több különböző weboldal közös tárhelyen történő üzemeltetésekor pedig egyszerre akár 100 weboldal is egy egybefüggő szerverparkon kerül kiszolgálásra. Ezek között - népszerűsége miatt - a Drupal bizony szép számban előfordulhat.

 

Webadmin névre keresztelt, saját fejlesztésű adminisztrációs felületünk, pénzügyi rendszerünk, valamint hivatalos weboldalunk is Drupal alapokon nyugszik. Ezeknek és a különböző ügyfelek által üzemeltetett hasonló oldalaknak hála az elmúlt évek során egyre több tapasztalatot gyűjtöttünk ezek üzemeltetésében is. Az alábbiakban röviden összefoglaljuk a sebességnövelés főbb lehetőségeit. Ezek a technikák éppúgy hasznosak lehetnek kisebb méretű weboldalak esetén, mint összetett adatbázissal rendelkező multi-site rendszereknél. A motor többrétegűsége és az azt kiszolgáló rendszerek sokfélesége miatt azonban az optimalizálás szerteágazó feladat lehet. Ha valakinek ez a célja, az egyes témák mindegyikében egyenként el lehet merülni és igény esetén egy-egy területen komolyabb finomhangolási módszereket bevetni.

 

Biztos, ami biztos

Legyen kikapcsolva az összes olyan modul, ami az oldal működéséhez nem szükséges feltétlenül. Ebbe beletartoznak a fejlesztést segítő kiegészítők is, mint a Toolbar és az Update manager. A Beállítások->Teljesítmény menüpont alatt mindenképp érdemes bekapcsolni a cachelést anonymous felhasználók részére engedélyező funkciót. Ugyanitt állítható be a gyorstárak minimum is maximum élettartama is. Ennek beállításakor azt érdemes figyelembe venni, hogy milyen gyakran frissül az oldalak tartalma. Ellenőrizd, hogy a képek nem túl nagy méretűek, a beépülő Javascript modulokból (jQuery és társai) pedig mindenhol a minimalizált verziót használod, hogy ezzel is kíméld az adatforgalomtól a szervert és a klienseket egyaránt.

A Cachelés a barátod

A teljesítményt fokozó kiegészítők közül érdemes feltenni az Alternative PHP Cache, a Boost és az Aggregate cache modulokat. Ezek használatával legalább 1 nagyságrendnyi gyorsulást értünk el az oldalaknál: A valós időben generált dinamikus tartalmaink kb. 5-10x, a többnyire statikus tartalommal rendelkező oldalaink 15-20x gyorsabb idő alatt töltődnek be. Ezt főleg a Boost modul használatának köszönhetjük. Az "aggregate cache" funkció főleg akkor segít, ha a böngészőnek sok kliensoldali tartalom letöltésével kell megküzdenie. Ilyenkor a CSS és JS fileok összetömörítve, egy-egy pakkban utaznak a böngészőig és így kevesebb sávszélességet foglalnak.

 

Ami a háttérben van

Nem mindegy, hogy milyen teljesítményű az oldal mögött az a rendszer, ahonnan az adatok valójában nyerjük. Felülről lefele ásva először érdemes utánamenni, nincsenek-e lassú, egyedi SQL lekérdezések a kódban, amik akadályozzák az oldalak gyors betöltődését. Ehhez a legelterjedtebb (mára ipari standarddá vált) MySQL adatbáziskezelő esetében a mysql_slow_query.log és az EXPLAIN utasítás adhat a legkönnyebben segítséget. Érdemes megfontolni, hogy MyISAM vagy InnoDB motort használjuk-e az adatok tárolására. Mindegyiknek vannak előnyei és hátrányai egyaránt. Aki pedig valamilyen másmilyen (Postgres, vagy valamilyen NoSQL) adatbáziskezelőt használ, remélhetőleg tudja, miért teszi azt. Legvégül, a háttértár teljesítménye is döntő tényező lehet. Alapvetés, hogy a kiszolgált oldalt tároló filerendszer, a működéséhez szükséges adatbázis és a futás során készülő log fileok mind-mind külön helyen legyenek tárolva. Ha ezeket a területeket egy időben egy helyről írja és olvassa a rendszer, az elég nagy overheader generálhat. Válasszuk ezeket külön, ha még nem tettük. Lényeges adatok tárolására valamilyen RAID megoldás használata manapság már magától értetődő. A legjobban skálázható megoldás azonban valamilyen elosztott rendszer használata. Erről a témáról és felhőszolgáltatásunkról a jövőben is rendszeresen jelentetünk meg írásokat itt, a blogunkon. Reméljük használható segítséget tudtunk nyújtani. Örömmel vesszük bárki tapasztalatait a témában!

Próbáld ki szolgáltatásainkat mielőtt megrendelnéd!

2012. 01. 04. - 12:39

Valós ügyféligény, hogy mielőtt valaki egy teljes weboldalt elköltöztetne, megnézi, hogy az új webhosting szolgáltatónál is ugyanúgy működik-e minden funkció. Ezt szem előtt tartva teremtettük meg a lehetőséget arra, hogy az összes webhostinghoz kapcsolódó szolgáltatást kipróbálhassátok még a vásárlás előtt.



Ezt a lehetőséget InclustDEMO névre kereszteltük. A kipróbáláshoz csak el kell látogatni a www.inclustdemo.com címre. Az oldalon részletesen le van írva, hogy az egyes szolgáltatásokhoz milyen jelszavak tartoznak, és hogy hogyan lehet kipróbálni az adott rendszereket. Semmi sincs korlátozva, azaz ugyanazt a szolgáltatást próbálhatjátok ki, mint meglévő ügyfeleink. A tesztrendszer egy Webhosting Alap csomagból és egy inclustdemo.com tesztdomainből áll.
Minden beállítás óránként visszaáll, így bármit nyugodtan kipróbálhattok, létrehozhattok, törölhettek!

De mit is lehet pontosan letesztelni?
- Webadmin rendszer (DNS menedzsment, ftp, mysql, email, cron beállítások)
- FTP elérés
- MySQL adatbázis (PHPMyAdmin felületen keresztül)
- Webmail felület (Roundcube)

Rendszeresen visszatérő kérdéseket kapunk keretrendszerekkel kapcsolatban, így az alábbi keretrendszereket gyári beállítással feltelepítettük, ha esetleg egy-egy modult vagy függvényt szeretnétek kipróbálni:

  • Drupal 7.8
  • Wordpress 3.2.1
  • Joomla 1.7.1
  • phpBB 3.0.9
  • CakePHP 1.3.6

Ha szeretnél átköltözni hozzánk, a megrendeléshez látogass el a webadmin.inclust.com/order oldalra. Árainkról a inclust.com/webhosting vagy inclust.com/domain oldalon tájékozódhatsz.

A demo rendszerrel és a megrendeléssel kapcsolatban az észrevételeket, kérdéseket a support [a] inclust.com címen várjuk!