Jak ulevit serveru, který zatěžuje WordPress?

Jako pronájemce VPS serveru se nestarám jen o samotné webové stránky, rozuměj o to co na nich bude, ale také o to, aby vůbec byly schopny na serveru běžet. No, a protože nemám k dispozici výkonný databázový server, tak musím fungovat s tím co jsem si pronajal. Bohužel jsem dnes zjistil, že čím víc lidí mi sem chodí, tím víc se server vytížený. To je samozřejmost, avšak když už vám server padá na čumák, tak je zle a je potřeba něco dělat.

WordPress zřout výkonu

WordPress jak asi víte, vše cpe do databází. To by ani zas tak moc nevadilo, až na to, že s databází pracuje tak urputně, že je schopný poměrně slušně zatížit procesor. O tom jsem se dnes přesvědčil, když jsem zjistil, že procesor běží vytížený na 90% pouze procesem MySQL. S tím jsem něco musel udělat. Po nějaké době pátrání jsem zjistil, že je potřeba zapnout něco, co jsem nikdy na sdíleném hostingu neřešil. Tím je cash paměť. Vždy jsem k ní měl spíše negativní přístup, protože jsou s ní často problémy. Od dnešního dne mám k vyrovnávací paměti respekt. S ní je vytížení serveru přeci jen o poznání nižší. Zpět k WordPressu. Abyste mohli ve WordPressu začít používat cache paměť, budete se muset pohrabat v konfiguraci ručně, nebo nainstalovat WordPressem doporučený plugin WP Super Cache.

WP Super Cache, geniální plugin

Plugin vytváří na disku statické stránky, které by se jinak musely celé znovu a znovu generovat. Samozřejmě, že dokáže zjistit, že došlo ke změně stránky, na základě čehož vygeneruje nový statický soubor. Umí rozlišit přihlášeného uživatele, kterému servíruje stránky vygenerované přímo. Umí dokonce spolupracovat s cloudy Amazon S3 a Cloudfront, na které si můžete nahrát statické soubory, kterými nechcete zatěžovat server. To ale asi nikdo nebude používat, alespoň u nás. Další fakt dobrá vychytávka je komprese statických souborů. Tím dojde k nárůstu rychlosti načítaných stránek. Má také podporu pro mobilní telefony, dále možnost vybrat si adresáře, které nebude kešovat a mnoho dalších velmi zajímavých nastavení. Oceňuji, že u důležitých nastavení je v závorce uvedeno (recommended). Takže hurá do kešování ať zbytečně nepřetěžujete server něčím, co se zas tak často nemění.

Vyházejte zbytečnosti

Projděte si všechny pluginy a zbytečné vypněte. Vyzkoušet můžete taky zajímavý nástroj s názvem P3 (Plugin Performance Profiler). Tento nástroj provede analýzu všech pluginů a ukáže vám, ty nejpomalejší. Je to skutečně šikovný nástroj. Pokud máte na serveru nainstalován PECL (rozšiřující knihovna PHP), pak si můžete nainstalovat doporučovaný plugin s názvem Memcached Object Cache. Tento plugin zajistí kešování objektů (snad jsem to přeložil dobře – viz. „provides a persistent backend for the WordPress object cache.“). Tento plugin se mi však nepodařilo zatím rozchodit.

Pro ty co mají možnost konfigurovat server

Pokud patříte mezi pár vyvolených a můžete se hrabat v konfiguraci serveru, doporučuje se naintalovat APC (Alternative PHP Cache). Jak z názvu vyplývá, jedná se o opcode cache pro PHP, který patří mezi nejznámější projekty samotných vývojářů PHP. Po zprovoznění se uvádí nárůst výkonu až o 200% procent.

Samotná instalace se provede na Centos následovně (záleží na vaší aktuální konfiguraci).


yum install pcre-devel
yum install php-pear
yum install php-devel
yum install httpd-devel
pecl install apc
echo "extension=apc.so" > /etc/php.d/apc.ini
/etc/init.d/httpd start

Po instalaci si do WP doinstalujte plugin APC Object Cache Backend. Pozor na to, že to není běžný plugin, takže ho ani neaktiovujte. Místo toho proveďte přesun souboru /wp-content/plugins/apc/object-cache.php do /wp-content/object-cache.php. Abyste mohli APC využívat, musíte si ještě doinstalovat plugin WP-FFPC. Tento plugin z vašeho webu udělá Nimbus 2000 a to doslova. Plugin stačí jen nainstalovat.

2 komentáře u „Jak ulevit serveru, který zatěžuje WordPress?“

  1. Poradíte mi webhosting kde mají APC (Alternative PHP Cache)
    Nejlépe v Česku

  2. Bohužel to nevím. Nicméně si myslím, že většina webhostingů používá nějakou formu akcelerace, protože drtivá většina uživatelů nemá ani ponětí, jak moc je takový WordPress náročný pro server, takže to bude na správcích serverů, aby se postarali o nějakou formu odlehčení. Wedos třeba používá eAccelerator. Jinak samotný plugin WP Super Cache by měl váš web dostatečně urychlit.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

This site uses Akismet to reduce spam. Learn how your comment data is processed.