Optimalizujte výkon svojej databázy pomocou servera Memcached s aplikáciami PHP a Python
Ak ste niekedy pociťovali bolesť z vysokého zaťaženia databázy, ktoré spôsobilo spomalenie vašich webových aplikácií, a pýtali ste sa: „Existuje spôsob, ako znížiť latenciu spôsobenú dotazmi DB?“, odpoveď na túto otázku je veľké áno. Priateľský démon vyrovnávacej pamäte Memcached je tu, aby vyriešil všetky vaše strasti! Ukladanie databázy do vyrovnávacej pamäte je jednou z najjednoduchších metód na zmiernenie zaťaženia databázy a zrýchlenie dynamických webových aplikácií.
Memcached sa definuje ako vysokovýkonný systém ukladania objektov do medzipamäte s distribuovanou pamäťou, všeobecnej povahy, ale pôvodne určený na použitie pri zrýchlení dynamických webových aplikácií zmiernením zaťaženia databázy. Vyvinutý Bradom Fitzpatrickom pre svoju webovú stránku LiveJournal v roku 2003.
V tomto článku sa pozrieme na to, ako nainštalovať a nakonfigurovať Memcached v Ubuntu 20.04 a pozrieť sa na klientov špecifických pre jazyk.
Predpoklady
Systém nainštalovaný s Ubuntu 20.04 s používateľom s právami správcu, tj sudo
užívateľ.
Inštalácia
Memcached je k dispozícii na oficiálnom úložisku Ubuntu 20.04, okrem Memcached sa chystáme nainštalovať aj nástroj CLI známy ako libmemcached-tools
spravovať Memcached. Na inštaláciu oboch stačí spustiť nasledujúci príkaz
sudo apt nainštalovať memcached libmemcached-tools
Overte inštaláciu
Po dokončení inštalácie sa démon Memcached spustí na pozadí sám. Na overenie inštalácie môžeme použiť príkaz z libmemcached-tools
balík na získanie štatistík servera Memcached. Buď bež
memcstat --servers localhost
alebo
memcstat --servery 127.0.0.1
The memcstat
príkaz zobrazuje štatistiku spusteného servera. Vyššie uvedený príkaz bude mať za následok výstup zobrazený nižšie.
Rôzne štatistiky ako napr uptime
v sekundách, verzia
a pid
sa zobrazí ako výstup. Ak sa však nezobrazí žiadny výstup, je možné, že Memcached nebeží. Preto na spustenie servera Memcached musíte spustiť nasledujúci príkaz.
sudo systemctl spustí memcached
Ak chcete spustiť server Memcached pri spustení systému, použite nasledujúci príkaz.
sudo systemctl povoliť memcached
Konfigurácia Memcached
Ak máte memcached nainštalovaný na samotnom webovom serveri, nie je potrebné meniť konfiguračný súbor, pretože memcached je predkonfigurovaný na prácu s localhostom.
Na druhej strane, ak ste nainštalovali Memcached na samostatnom systéme, budete musieť zmeniť konfiguráciu, aby ste umožnili vzdialenému serveru prístup k serveru Memcached.
Nastavenie vzdialeného prístupu pre server Memcached
Memcached je zraniteľný voči útokom DDoS (Distributed Denial of Service). Nesprávne pravidlo brány firewall a otvorené porty UDP ponechajú váš server otvorený a zraniteľný voči útokom DDoS.
Na zmiernenie rizika môžeme buď deaktivovať protokol UDP pre Memcached v konfigurácii, alebo nastaviť firewall len tak, aby umožňoval dôveryhodné servery.
Po vybalení sa Ubuntu dodáva bez otvorených portov TCP alebo UDP. Ďalej démon brány firewall ufw
(nekomplikovaná brána firewall) nie je predvolene povolená.
Povolíme firewall a nastavíme konfiguráciu Memcached, aby sme mohli zmierniť zraniteľnosť DDoS.
Najprv povoľte ufw
spustením nasledujúceho príkazu:
sudo systemctl povoliť ufw
Potom spustite ufw
službu spustením nižšie uvedeného príkazu:
sudo systemctl štart ufw
Keď je brána firewall spustená, môžeme konečne nastaviť pravidlá brány firewall. Najprv povoľte port 22, aby ste umožnili pripojenia SSH. SSH je potrebný na vzdialený prístup k požadovanému serveru.
sudo ufw povoliť 22
Po druhé, potrebujete poznať IP adresu klienta, teda hostiteľa webovej aplikácie a IP adresu servera, teda servera Memcached.
V tomto prípade predpokladajme, že IP klienta je 192.168.0.4
a IP servera Memcached 192.168.0.5
v lokálnej sieti.
Ak chcete povoliť vzdialený prístup servera memcached na klientsky server, spustite:
sudo ufw povoliť z 192.168.0.4 na ľubovoľný port 11211
Vymeňte 192.168.0.4
s požadovanou IP adresou klienta.
Ďalej upravte konfiguračný súbor Memcached umiestnený na adrese /etc/memcached.conf
behom nano
príkaz.
sudo nano /etc/memcached.conf
The memcached.conf
konfiguračný súbor sa otvorí pomocou nano editora, vyhľadajte -l 127.0.0.1
riadok v konfigurácii a vymeňte 127.0.0.1
s vašou IP servera Memcached alebo v tomto prípade 192.168.0.5
.
Po výmene lisu ctrl+o
pre zápis do konfiguračného súboru a stlačte enter, stlačte ctrl+x
ukončiť nano.
Reštartujte server Memcached a ufw
firewall spustením nižšie uvedeného príkazu.
sudo systemctl reštart memcached ufw
Teraz sme hotoví s inštaláciou a konfiguráciou servera Memcached na Ubuntu 20.04.
Pripája sa k serveru Memcached
Ak chcete používať server Memcached, budete si musieť nainštalovať klienta špecifického pre jazyk. Našťastie má Memcached podporu pre mnoho populárnych jazykov.
Pozrime sa teda, ako nainštalovať php
a pytón
klient pre Memcached.
PHP je najpopulárnejší skriptovací jazyk na strane servera a Memcached väčšinou používajú weboví vývojári na zlepšenie serverového výkonu webových aplikácií poháňaných PHP.
Ak chcete nainštalovať podporu memcached v php, spustiť:
sudo apt install php-memcached
Python má tiež niekoľko knižníc, ktoré môžu pracovať a interagovať so serverom Memcached, ako napr pymemcached
alebo python-memcached
.
Memcached pre python môžete nainštalovať spustením nasledujúcich príkazov pip:
pip install pymemcache
pip install python-memcached
Na záver sme sa pozreli na inštaláciu, konfiguráciu a niekoľko jazykovo špecifických klientov Memcached v Ubuntu 20.04.
Ak chcete vedieť podrobnejšie a pokročilejšie využitie Memcached, pozrite sa na Memcached Wiki.