Optimalizujte výkon své databáze pomocí serveru Memcached s aplikacemi PHP a Python
Pokud jste někdy pociťovali bolest z vysokého zatížení databáze způsobující zpomalení vašich webových aplikací a přemýšleli jste: „Existuje způsob, jak snížit latenci způsobenou dotazy DB?“, pak odpověď na tuto otázku je velké ano. Přátelský démon paměti cache Memcached je tu, aby vyřešil všechny vaše strasti! Ukládání databáze do mezipaměti je jednou z nejjednodušších metod, jak zmírnit zatížení databáze a zrychlit dynamické webové aplikace.
Memcached se definuje jako vysoce výkonný systém pro ukládání objektů do mezipaměti s distribuovanou pamětí, obecný ve své podstatě, ale původně určený pro použití při zrychlení dynamických webových aplikací zmírněním zatížení databáze. Vyvinutý Bradem Fitzpatrickem pro svůj web LiveJournal v roce 2003.
V tomto článku se podíváme na to, jak nainstalovat a nakonfigurovat Memcached v Ubuntu 20.04 a podíváme se na jeho klienty specifické pro daný jazyk.
Předpoklady
Systém nainstalovaný s Ubuntu 20.04 s uživatelem s právy správce, tj sudo
uživatel.
Instalace
Memcached je k dispozici na oficiálním úložišti Ubuntu 20.04, kromě Memcached se také chystáme nainstalovat nástroj CLI známý jako libmemcached-tools
ke správě Memcached. Pro instalaci obou stačí spustit následující příkaz
sudo apt install memcached libmemcached-tools
Ověřte instalaci
Po dokončení instalace se démon Memcached spustí na pozadí sám. Pro ověření instalace můžeme použít příkaz from libmemcached-tools
balíček pro získání statistik serveru Memcached. Buď běžet
memcstat --servers localhost
nebo
memcstat --servery 127.0.0.1
The memcstat
příkaz zobrazuje statistiky běžícího serveru. Výše uvedený příkaz bude mít za následek výstup zobrazený níže.
Různé statistiky jako např doba provozuschopnosti
v sekundách, verze
a pid
se zobrazí jako výstup. Pokud se však nezobrazí žádný výstup, je možné, že Memcached neběží. Proto musíte spustit následující příkaz ke spuštění serveru Memcached.
sudo systemctl spusťte memcached
Chcete-li spustit server Memcached při spuštění systému, použijte následující příkaz.
sudo systemctl povolit memcached
Konfigurace Memcached
Pokud máte svůj memcached nainstalovaný na samotném webovém serveru, není třeba měnit konfigurační soubor, protože memcached je předkonfigurován pro práci s localhostem.
Na druhou stranu, pokud jste nainstalovali Memcached na samostatný systém, budete muset změnit konfiguraci, abyste umožnili vzdálenému serveru přístup k serveru Memcached.
Nastavení vzdáleného přístupu pro server Memcached
Memcached je zranitelný vůči útokům DDoS (Distributed Denial of Service). Nesprávné pravidlo brány firewall a otevřené porty UDP ponechají váš server otevřený a zranitelný vůči útokům DDoS.
Ke zmírnění rizika můžeme buď zakázat protokol UDP pro Memcached v konfiguraci, nebo nastavit firewall pouze tak, aby povoloval důvěryhodné servery.
Po vybalení se Ubuntu dodává bez otevřených portů TCP nebo UDP. Dále démon brány firewall ufw
(nekomplikovaná brána firewall) není ve výchozím nastavení povolena.
Povolíme firewall a nastavíme konfiguraci Memcached, abychom mohli zmírnit zranitelnost DDoS.
Nejprve povolte ufw
spuštěním následujícího příkazu:
sudo systemctl povolit ufw
Poté spusťte ufw
službu spuštěním níže uvedeného příkazu:
sudo systemctl start ufw
Se spuštěným Firewallem můžeme konečně nastavit pravidla firewallu. Nejprve povolte port 22, abyste povolili připojení SSH. SSH je potřeba pro vzdálený přístup k požadovanému serveru.
sudo ufw allow 22
Za druhé, potřebujete znát IP adresu klienta, tedy hostitele webové aplikace a IP adresu serveru, tedy serveru Memcached.
V tomto případě předpokládejme, že IP klienta je 192.168.0.4
a IP serveru Memcached 192.168.0.5
na místní síti.
Chcete-li tedy povolit vzdálený přístup serveru memcached ke klientskému serveru, spusťte:
sudo ufw povolit z 192.168.0.4 na libovolný port 11211
Nahradit 192.168.0.4
s požadovanou IP adresou klienta.
Dále upravte konfigurační soubor Memcached umístěný na /etc/memcached.conf
běháním nano
příkaz.
sudo nano /etc/memcached.conf
The memcached.conf
konfigurační soubor se otevře pomocí editoru nano, vyhledejte soubor -l 127.0.0.1
řádek v konfiguraci a vyměňte 127.0.0.1
s vaší IP Memcached Server nebo v tomto případě 192.168.0.5
.
Po výměně lisu ctrl+o
pro zápis do konfiguračního souboru a stiskněte enter, stiskněte ctrl+x
pro ukončení nano.
Restartujte server Memcached a ufw
firewall spuštěním níže uvedeného příkazu.
sudo systemctl restart memcached ufw
Nyní jsme hotovi s instalací a konfigurací serveru Memcached na Ubuntu 20.04.
Připojování k serveru Memcached
Chcete-li používat server Memcached, budete muset nainstalovat klienta specifického pro daný jazyk. Naštěstí má Memcached podporu pro mnoho populárních jazyků.
Pojďme se tedy podívat, jak nainstalovat php
a krajta
klient pro Memcached.
PHP je nejoblíbenější skriptovací jazyk na straně serveru a Memcached většinou používají weboví vývojáři ke zlepšení výkonu serveru webových aplikací využívajících PHP.
Chcete-li nainstalovat podporu memcached v php, běh:
sudo apt install php-memcached
Python má také několik knihoven, které mohou pracovat a komunikovat se serverem Memcached, jako je např pymemcached
nebo python-memcached
.
Memcached pro python můžete nainstalovat spuštěním následujících příkazů pip:
pip install pymemcache
pip install python-memcached
Na závěr jsme se podívali na instalaci, konfiguraci a několik jazykových klientů Memcached v Ubuntu 20.04.
Chcete-li se dozvědět podrobnější a pokročilejší využití Memcached, podívejte se na Memcached Wiki.