Vydanie Memcached 1.6.0 s podporou externého úložiska

uskutočnilo sa významné uvoľnenie systému ukladania údajov do pamäte cache Memcached 1.6.0, ktorý pracuje s údajmi vo formáte kľúč/hodnota a ľahko sa používa. Memcached sa zvyčajne používa ako odľahčené riešenie na urýchlenie práce na stránkach s vysokým zaťažením tým, že ukladá do vyrovnávacej pamäte prístup k DBMS a prechodným údajom. kód dodávané pod licenciou BSD.

Nová verzia stabilizuje implementáciu úložiska "extstore", ktorý je teraz štandardne zostavený (na vypnutie v konfiguračnom skripte je poskytnutá možnosť "-disable-extstore"), ale vyžaduje explicitnú aktiváciu pri spustení (staré inštalácie budú po aktualizácii naďalej fungovať bez zmien). Hoci sa extstore vo všeobecnosti považuje za stabilný, pri jeho implementácii na veľmi veľkých systémoch sa odporúča opatrnosť.

Extstore vám umožňuje použiť SSD/Flash disky na rozšírenie veľkosti vyrovnávacej pamäte. Rovnako ako v prípade pamäte RAM, úložisko Flash nie je trvalé a po reštarte sa resetuje. Cieľom nového režimu je zabezpečiť efektívne ukladanie veľkých dát do vyrovnávacej pamäte. Pri použití „extstore“ sú kľúče a metadáta, ako predtým, uložené iba v RAM, ale veľké dáta spojené s kľúčmi, ktorých veľkosť presahuje nastavený prah, sa ukladajú do externého úložiska a v RAM zostáva iba ukazovateľ.

Ak je kľúč spojený s malými údajmi, potom Memcached funguje ako zvyčajne, uchováva údaje v pamäti a nepristupuje k externému úložisku. Ak je veľa voľnej pamäte, najpotrebnejšie údaje môžu byť navyše úplne umiestnené vo vyrovnávacej pamäti RAM (napríklad môžete určiť, že iba objekty väčšie ako 1024 3600 bajtov, ku ktorým sa počas XNUMX XNUMX sekúnd nepristupovalo, sa obnovia na Flash ).

Implementácia je optimalizovaná tak, aby zabezpečila maximálny výkon a minimálne zaťaženie procesora na úkor efektívnosti úložiska (vysoká úroveň fragmentácie). Na predĺženie životnosti jednotiek Flash sa údaje ukladajú do vyrovnávacej pamäte a postupne sa ukladajú do úložiska. Ak chcete uložiť stav vyrovnávacej pamäte medzi reštartmi, môžete použiť možnosť, ktorá sa objavila vo verzii 1.5.18, na uloženie výpisu vyrovnávacej pamäte do súboru. Pri ďalšom spustení môžete obnoviť vyrovnávaciu pamäť z tohto súboru, aby ste eliminovali špičky v zaťažení procesorov obsahu v dôsledku prázdnej vyrovnávacej pamäte (vyrovnávacia pamäť sa okamžite „zahreje“).

Druhou dôležitou zmenou v Memcached 1.6 bolo prepracovanie kódu sieťovej komunikácie, ktorý je prispôsobený na automatické spracovanie dávkových požiadaviek v rámci jedného systémového volania. Predtým pri odosielaní viacerých príkazov GET v jednom TCP pakete memcached odosielal výsledky so samostatnými systémovými volaniami. V Memcached 1.6 sa odpovede agregujú a vracajú odoslaním jediného systémového volania. Vďaka tomu je teraz na jedno systémové volanie v priemere 1.5 kľúča, čo v testoch preukazuje zníženie záťaže CPU až o 25 % a zníženie latencie o niekoľko percent.

Redizajn sieťového subsystému tiež umožnil prejsť na dynamické prideľovanie vyrovnávacích pamätí podľa potreby namiesto statického prideľovania vyrovnávacích pamätí. Táto optimalizácia znížila spotrebu pamäte pri čakaní na nové príkazy prostredníctvom klientom vytvoreného pripojenia zo 4.5 KB na 400-500 bajtov a tiež umožnila zbaviť sa mnohých volaní malloc, realloc a free, ktoré vedú k zbytočnej fragmentácii pamäte na systémy s veľkým počtom pripojení. Každé pracovné vlákno teraz spracováva svoju vlastnú oblasť vyrovnávacích pamätí na čítanie a zápis pre aktívne pripojenia klientov. Ak chcete upraviť veľkosť týchto vyrovnávacích pamätí
sú poskytnuté možnosti „-o resp_obj_mem_limit=N“ a „-o read_buf_mem_limt=N“.

Pobočka 1.6 tiež oznámila ukončenie podpory binárny protokol interakciu so serverom. Údržba binárnych protokolov a opravy chýb budú pokračovať, ale nové funkcie a aktualizácie existujúcich funkcií nebudú prenesené. Textový protokol sa bude ďalej rozvíjať bez zmien. Binárny protokol bol nahradený novým protokolom meta (textová verzia protokolu s kompaktnými metapríkazmi), demonštrujúca optimálnu kombináciu výkonu a spoľahlivosti. Nový protokol pokrýva všetky operácie, ktoré boli predtým dostupné prostredníctvom textových a binárnych protokolov.

Zdroj: opennet.ru

Pridať komentár