Famoahana ny Memcached 1.6.0 miaraka amin'ny fanohanan'ny fitahirizana ivelany

nitranga famotsorana manan-danja ny rafitra caching data ao anaty fitadidiana Memcached 1.6.0, izay miasa amin'ny angon-drakitra amin'ny endrika fanalahidy/sanda ary mora ampiasaina. Ny Memcached dia matetika ampiasaina ho vahaolana maivana hanafaingana ny asan'ny tranokala be entana amin'ny alΓ lan'ny caching ny fidirana amin'ny DBMS sy ny angona antonony. fehezan-dalΓ na nanome eo ambanin'ny lisansa BSD.

Ny dikan-teny vaovao dia manamafy ny fampiharana ny fitahirizana "extstore", izay natsangana amin'ny alΓ lan'ny default (mba hanesorana ny script configure, ny safidy "-disable-extstore" dia omena), saingy mitaky fampahavitrihana mazava amin'ny fanombohana (hitohy ny fametrahana taloha tsy misy fiovana aorian'ny fanavaozana). Na dia heverina ho marin-toerana aza ny extstore amin'ny ankapobeny, dia ilaina ny mitandrina rehefa mampihatra izany amin'ny rafitra lehibe.

Extstore dia ahafahanao mampiasa SSD/Flash drive hanitarana ny haben'ny cache. Tahaka ny amin'ny RAM, ny fitahirizana Flash dia tsy maharitra ary averina rehefa manomboka. Ny sehatry ny fomba vaovao dia ny miantoka ny caching mahomby amin'ny angona lehibe. Rehefa mampiasa ny "extstore", ny fanalahidy sy ny metadata dia, toy ny teo aloha, dia voatahiry ao amin'ny RAM ihany, fa ny angon-drakitra lehibe mifandray amin'ny fanalahidy, ny haben'ny izay mihoatra ny tokonam-baravarana, dia voatahiry ao amin'ny fitehirizana ivelany, ary ny tondro ihany no mijanona ao amin'ny RAM.

Raha mifandray amin'ny angona kely ny lakile, dia miasa toy ny mahazatra ny Memcached, mitazona ny angon-drakitra ao anaty fitadidiana ary tsy miditra amin'ny fitahirizana ivelany. Raha misy fahatsiarovana malalaka be dia be, ny angon-drakitra tena ilaina dia azo apetraka tanteraka ao amin'ny cache ao amin'ny RAM (ohatra, azonao atao ny mamaritra fa ny zavatra lehibe kokoa noho ny 1024 bytes izay tsy nidirana nandritra ny 3600 segondra dia averina amin'ny Flash. ).

Ny fampiharana dia optimized mba hiantohana ny fampandehanana ambony indrindra sy ny enta-mavesatra CPU faran'izay kely indrindra, amin'ny fandaniana ny fahombiazan'ny fitehirizana (avo ny fizarazarana). Mba hanitarana ny androm-piainan'ny kapila tselatra, ny angon-drakitra dia asiana buffer ary arotsaka amin'ny fitahirizana misesy. Mba hamonjena ny toetry ny cache eo anelanelan'ny fanombohana indray dia azonao atao ny mampiasa ny fahafahana niseho tamin'ny famoahana 1.5.18 mba hanary ny fanariam-pako amin'ny rakitra iray. Amin'ny fanombohana manaraka, azonao atao ny mamerina ny cache avy amin'ity rakitra ity mba hanafoanana ny tampon'ny enta-mavesatra amin'ny processeur votoaty noho ny tsy fisian'ny cache (mivadika ho "mafana" avy hatrany ny cache).

Ny fiovana lehibe faharoa ao amin'ny Memcached 1.6 dia ny famerenana indray ny kaody fifandraisana amin'ny tambajotra, izay namboarina mba handrindrana ny fangatahana batch ho azy ao anatin'ny antso an-tariby tokana. Teo aloha, rehefa mandefa baiko GET maromaro ao anaty fonosana TCP tokana, memcached dia handefa ny valiny miaraka amin'ny antso an-tariby misaraka. Ao amin'ny Memcached 1.6, ny valiny dia atambatra ary averina amin'ny alΓ lan'ny fandefasana antso an-tariby tokana. Vokatr'izany dia misy lakile 1.5 eo ho eo isaky ny antso an-tariby, izay amin'ny fitsapana dia mampiseho ny fihenan'ny enta-mavesatra CPU hatramin'ny 25% ary ny fihenan'ny latency amin'ny isan-jato.

Ny fanavaozana ny subsistema tambajotra ihany koa dia nahafahana nifindra tamin'ny fizarana dynamic ny buffers raha ilaina, fa tsy ny fametrahana buffers. Ity fanatsarana ity dia nampihena ny fanjifana fahatsiarovana eo am-piandrasana baiko vaovao amin'ny alΓ lan'ny fifandraisana napetraky ny mpanjifa avy amin'ny 4.5 KB ka hatramin'ny 400-500 bytes, ary nahafahana nanala antso maro ho an'ny malloc, realloc ary maimaim-poana, izay mitarika amin'ny fizarazarana fahatsiarovana tsy ilaina amin'ny rafitra misy fifandraisana marobe. Ny kofehy mpiasa tsirairay izao dia mitantana ny dobony manokana amin'ny famakiana sy fanoratana ho an'ny fifandraisana amin'ny mpanjifa mavitrika. Mba hanitsiana ny haben'ireo buffer ireo
ny safidy β€œ-o resp_obj_mem_limit=N” sy β€œ-o read_buf_mem_limt=N” dia omena.

Sampana 1.6 ihany koa dia nanambara ny fanafoanana ny protocol binary fifandraisana amin'ny mpizara. Hitohy ny fikojakojana ny protocol binary sy ny fanamboarana bug, fa ny endri-javatra vaovao sy ny fanavaozana ny endri-javatra efa misy dia tsy ho alefa. Text protocol mbola hivoatra tsy misy fiovana. Ny protocol binary dia nosoloina protocol vaovao Meta (dikan-tenin'ny protocol miaraka amin'ny baikon'ny meta-compact), mampiseho ny fampifangaroana tsara indrindra amin'ny fampisehoana sy ny fahatokisana. Ny protocol vaovao dia mandrakotra ny asa rehetra efa nisy teo aloha tamin'ny alΓ lan'ny lahatsoratra sy protocoles binary.

Source: opennet.ru

Add a comment