La nova versió estabilitza la implementació de l'emmagatzematge "
Extstore us permet utilitzar unitats SSD/Flash per ampliar la mida de la memòria cau. Igual que amb la memòria RAM, l'emmagatzematge Flash no és permanent i es restableix quan es reinicia. L'abast del nou mode és garantir l'emmagatzematge en memòria cau de grans dades. Quan s'utilitza "extstore", les claus i les metadades s'emmagatzemen, com abans, només a la memòria RAM, però les dades grans associades a les claus, la mida de les quals supera un llindar establert, s'emmagatzemen a l'emmagatzematge extern i només el punter roman a la memòria RAM.
Si la clau està associada a dades petites, Memcached funciona com de costum, conserva les dades a la memòria i no accedeix a l'emmagatzematge extern. Si hi ha molta memòria lliure, les dades més necessàries també es poden localitzar completament a la memòria cau de la memòria RAM (per exemple, podeu especificar que només els objectes de més de 1024 bytes als quals no s'ha accedit durant 3600 segons es restableixin a Flash). ).
La implementació està optimitzada per garantir el màxim rendiment i una càrrega mínima de la CPU, a costa de l'eficiència de l'emmagatzematge (alt nivell de fragmentació). Per allargar la vida útil de les unitats flaix, les dades s'emmagatzemen i s'envien a l'emmagatzematge seqüencialment. Per desar l'estat de la memòria cau entre reinicis, podeu utilitzar l'habilitat que va aparèixer a la versió 1.5.18 per bolcar un abocament de memòria cau a un fitxer. En el proper inici, podeu restaurar la memòria cau d'aquest fitxer per eliminar els pics de càrrega dels processadors de contingut a causa que la memòria cau està buida (la memòria cau immediatament es torna "calenta").
El segon canvi important a Memcached 1.6 va ser la reelaboració del codi de comunicació de xarxa, que s'adapta per processar automàticament les sol·licituds per lots dins d'una única trucada al sistema. Anteriorment, quan s'enviaven diverses ordres GET en un sol paquet TCP, memcached enviava els resultats amb trucades de sistema separades. A Memcached 1.6, les respostes s'agreguen i es retornen enviant una única trucada al sistema. Com a resultat, ara hi ha una mitjana d'1.5 claus per trucada al sistema, cosa que en les proves demostra una reducció de la càrrega de la CPU fins a un 25% i una reducció de la latència en diversos per cent.
El redisseny del subsistema de xarxa també va permetre passar a l'assignació dinàmica de buffers segons calia, en lloc d'assignar buffers estàticament. Aquesta optimització va reduir el consum de memòria mentre s'esperava noves ordres a través d'una connexió establerta pel client de 4.5 KB a 400-500 bytes, i també va permetre desfer-se de moltes trucades a malloc, realloc i free, que condueixen a una fragmentació innecessària de la memòria en sistemes amb un gran nombre de connexions. Cada fil de treball ara gestiona el seu propi grup de buffers de lectura i escriptura per a connexions de client actives. Per ajustar la mida d'aquests buffers
es proporcionen les opcions "-o resp_obj_mem_limit=N" i "-o read_buf_mem_limt=N".
La branca 1.6 també va anunciar la desactivació de
Font: opennet.ru