Memcached 1.6.0:n julkaisu ulkoisen tallennustilan tuella

tapahtui muistissa olevan tiedon välimuistijärjestelmän merkittävä vapautuminen Välimuistissa 1.6.0, joka toimii avain/arvo-muodossa olevilla tiedoilla ja on helppokäyttöinen. Memcachedia käytetään yleensä kevyenä ratkaisuna nopeuttamaan paljon kuormitettuja sivustoja tallentamalla välimuistiin pääsyn DBMS:ään ja välitietoihin. Koodi toimitetaan BSD-lisenssillä.

Uusi versio vakauttaa tallennustilan toteutusta "extstore", joka on nyt rakennettu oletusarvoisesti (jos haluat poistaa käytöstä määrityskomentosarjassa, vaihtoehto "-disable-extstore" on mukana), mutta vaatii nimenomaisen aktivoinnin käynnistyksen yhteydessä (vanhat asennukset jatkavat toimintaansa ilman muutoksia päivityksen jälkeen). Vaikka extstorea pidetään yleensä vakaana, varovaisuutta suositellaan, kun se otetaan käyttöön erittäin suurissa järjestelmissä.

Extstoren avulla voit käyttää SSD/Flash-asemia välimuistin koon laajentamiseen. Kuten RAM-muistin kanssa, Flash-tallennus ei ole pysyvää, ja se nollautuu uudelleenkäynnistyksen yhteydessä. Uuden tilan tarkoitus on varmistaa suurten tietojen tehokas välimuisti. Käytettäessä "extstorea" avaimet ja metatiedot tallennetaan entiseen tapaan vain RAM-muistiin, mutta avaimiin liittyvät suuret tiedot, joiden koko ylittää asetetun kynnyksen, tallennetaan ulkoiseen tallennustilaan ja vain osoitin jää RAM-muistiin.

Jos avain liittyy pieniin tietoihin, Memcached toimii normaalisti, säilyttää tiedot muistissa eikä käytä ulkoista tallennustilaa. Jos vapaata muistia on paljon, tarvittavat tiedot voidaan lisäksi sijoittaa kokonaan RAM-muistin välimuistiin (voit esimerkiksi määrittää, että vain yli 1024 tavua suuremmat objektit, joita ei ole käytetty 3600 sekuntiin, palautetaan Flashiksi ).

Toteutus on optimoitu maksimaalisen suorituskyvyn ja minimaalisen suorittimen kuormituksen varmistamiseksi tallennustehokkuuden kustannuksella (korkea pirstoutuneisuus). Flash-asemien käyttöiän pidentämiseksi tiedot puskuroidaan ja huuhdellaan tallennustilaan peräkkäin. Jos haluat tallentaa välimuistin tilan uudelleenkäynnistysten välillä, voit käyttää versiossa 1.5.18 esiintyvää kykyä siirtää välimuistin vedos tiedostoon. Seuraavalla käynnistyksellä voit palauttaa välimuistin tästä tiedostosta poistaaksesi sisällön prosessorien kuormitushuiput, koska välimuisti on tyhjä (välimuistista tulee heti ”lämmin”).

Toinen tärkeä muutos Memcached 1.6:ssa oli verkkoviestintäkoodin uusiminen, joka on mukautettu käsittelemään automaattisesti eräpyynnöt yhden järjestelmäkutsun sisällä. Aikaisemmin, kun lähetettiin useita GET-komentoja yhdessä TCP-paketissa, memcached lähetti tulokset erillisillä järjestelmäkutsuilla. Memcached 1.6:ssa vastaukset kootaan yhteen ja palautetaan lähettämällä yksi järjestelmäkutsu. Tämän seurauksena näppäintä on nyt keskimäärin 1.5 näppäintä per järjestelmäpuhelu, mikä testeissä osoittaa prosessorin kuormituksen vähenemisen jopa 25 % ja latenssin pienenemisen useilla prosenteilla.

Verkkoalijärjestelmän uudelleensuunnittelu mahdollisti myös siirtymisen dynaamiseen puskurien allokointiin tarpeen mukaan puskurien staattisen osoittamisen sijaan. Tämä optimointi vähensi muistin kulutusta odottaessaan uusia komentoja asiakkaan muodostaman yhteyden kautta 4.5 kt:sta 400-500 tavuun ja mahdollisti myös monien malloc-, realloc- ja free-kutsujen poistamisen, jotka johtavat tarpeettomaan muistin pirstoutumiseen järjestelmät, joissa on suuri määrä yhteyksiä. Jokainen työsäie käsittelee nyt omaa luku- ja kirjoituspuskurivalikoimaansa aktiivisille asiakasyhteyksille. Voit säätää näiden puskurien kokoa
Vaihtoehdot "-o resp_obj_mem_limit=N" ja "-o read_buf_mem_limt=N" tarjotaan.

Branch 1.6 ilmoitti myös käytöstä poistamisesta binääriprotokolla vuorovaikutusta palvelimen kanssa. Binaariprotokollan ylläpito ja virheenkorjaukset jatkuvat, mutta uusia ominaisuuksia ja päivityksiä olemassa oleviin ominaisuuksiin ei siirretä. Tekstiprotokolla kehittyy edelleen ilman muutoksia. Binääriprotokolla on korvattu uudella protokollalla meta (protokollan tekstiversio kompakteilla metakomennoilla), joka osoittaa suorituskyvyn ja luotettavuuden optimaalisen yhdistelmän. Uusi protokolla kattaa kaikki aiemmin teksti- ja binääriprotokollien kautta saatavilla olleet toiminnot.

Lähde: opennet.ru

Lisää kommentti