Xarici yaddaş dəstəyi aktivləşdirilmiş Memcached 1.6.0 buraxılışı

Baş verdi yaddaşdaxili məlumatların keşləmə sisteminin əhəmiyyətli buraxılışı Memcached 1.6.0, açar/dəyər formatında verilənlər üzərində işləyir və istifadəsi asandır. Memcached adətən DBMS və aralıq məlumatlara girişi keşləşdirməklə yüksək yüklənmiş saytları sürətləndirmək üçün yüngül həll yolu kimi istifadə olunur. Kod təchiz olunmuşdur BSD lisenziyası altında.

Yeni versiya yaddaşın tətbiqini sabitləşdirir "exstore", indi standart olaraq qurulmuşdur (konfiqurasiya skriptində söndürmək üçün "-disable-extstore" seçimi təmin edilir), lakin başlanğıcda açıq aktivləşdirmə tələb olunur (köhnə quraşdırmalar yeniləmədən sonra dəyişiklik olmadan işləməyə davam edəcək). Exstore ümumiyyətlə sabit hesab edilsə də, onu çox böyük sistemlərdə tətbiq edərkən ehtiyatlı olmaq tövsiyə olunur.

Extstore, keşin ölçüsünü genişləndirmək üçün SSD/Flash disklərdən istifadə etməyə imkan verir. RAM ilə olduğu kimi, Flash yaddaş daimi deyil və yenidən başladıqdan sonra sıfırlanır. Yeni rejimin əhatə dairəsi böyük məlumatların səmərəli keşləşdirilməsini təmin etməkdir. "Exstore" istifadə edərkən açarlar və metaməlumatlar, əvvəlki kimi, yalnız RAM-da saxlanılır, lakin ölçüsü müəyyən edilmiş həddi aşan açarlarla əlaqəli böyük məlumatlar xarici yaddaşda saxlanılır və RAM-da yalnız göstərici qalır.

Açar kiçik məlumatlar ilə əlaqələndirilirsə, Memcached həmişəki kimi işləyir, məlumatları yaddaşda saxlayır və xarici yaddaşa daxil olmur. Əgər çoxlu boş yaddaş varsa, o zaman ən çox tələb olunan məlumatlar əlavə olaraq RAM-da keşdə yerləşə bilər (məsələn, yalnız 1024 saniyə ərzində əldə edilməyən 3600 baytdan böyük obyektlərin Flash-a sıfırlanacağını təyin edə bilərsiniz. ).

Tətbiq yaddaşın səmərəliliyi (yüksək parçalanma səviyyəsi) hesabına maksimum performans və minimal CPU yüklənməsini təmin etmək üçün optimallaşdırılmışdır. Flash sürücülərin ömrünü uzatmaq üçün məlumatlar ardıcıl olaraq buferlənir və yaddaşa yuyulur. Yenidən başlatmalar arasında keş vəziyyətini saxlamaq üçün siz 1.5.18 buraxılışında görünən imkandan istifadə edərək keş zibilini fayla köçürə bilərsiniz. Növbəti başlanğıcda, keşin boş olması səbəbindən məzmun prosessorlarında yüklənmənin zirvələrini aradan qaldırmaq üçün bu fayldan keşi bərpa edə bilərsiniz (keş dərhal "isti" olur).

Memcached 1.6-da ikinci mühüm dəyişiklik bir sistem çağırışı daxilində toplu sorğuları avtomatik emal etmək üçün uyğunlaşdırılmış şəbəkə rabitə kodunun yenidən işlənməsi idi. Əvvəllər bir TCP paketində çoxlu GET əmrləri göndərilərkən, memcached nəticələri ayrı sistem zəngləri ilə göndərirdi. Memcached 1.6-da cavablar toplanır və tək sistem zəngi göndərməklə geri qaytarılır. Nəticədə, indi hər sistem çağırışında orta hesabla 1.5 düymə var ki, bu da sınaqlarda CPU yükünün 25%-ə qədər azaldığını və gecikmə müddətinin bir neçə faiz azaldığını nümayiş etdirir.

Şəbəkə alt sisteminin yenidən dizaynı həm də buferləri statik olaraq təyin etmək əvəzinə, lazım olduqda buferlərin dinamik ayrılmasına keçməyə imkan verdi. Bu optimallaşdırma, müştəri tərəfindən qurulmuş əlaqə vasitəsilə yeni əmrləri gözləyərkən yaddaş istehlakını 4.5 KB-dan 400-500 bayta qədər azaldıb, həmçinin malloc, realloc və free-ə çoxlu zənglərdən xilas olmağa imkan verdi ki, bu da yaddaşın lazımsız parçalanmasına səbəb olur. çoxlu sayda əlaqələri olan sistemlər. Hər bir işçi tel indi aktiv müştəri əlaqələri üçün oxumaq və yazma buferlərinin öz hovuzunu idarə edir. Bu tamponların ölçüsünü tənzimləmək üçün
“-o resp_obj_mem_limit=N” və “-o read_buf_mem_limt=N” seçimləri təmin edilir.

1.6 şöbəsi də köhnəldiyini açıqladı ikili protokol server ilə qarşılıqlı əlaqə. İkili protokolun saxlanması və xətaların düzəldilməsi davam edəcək, lakin yeni funksiyalar və mövcud funksiyaların yeniləmələri daşınmayacaq. Mətn protokolu dəyişmədən inkişaf etməyə davam edəcək. Binar protokol yeni protokolla əvəz edilmişdir meta performans və etibarlılığın optimal birləşməsini nümayiş etdirən (kompakt meta-əmrləri olan protokolun mətn versiyası). Yeni protokol mətn və ikili protokollar vasitəsilə əvvəllər mövcud olan bütün əməliyyatları əhatə edir.

Mənbə: opennet.ru

Добавить комментарий