All Products
Search
Document Center

Database Autonomy Service:Fragmentasi memori Redis

Last Updated:Mar 29, 2026

Database Autonomy Service (DAS) memasukkan rasio fragmentasi memori sebagai salah satu faktor dalam fitur inspeksi dan penilaian untuk instans Redis. Topik ini menjelaskan apa itu fragmentasi memori, penyebabnya, cara mengukurnya, serta kapan perlu mengambil tindakan.

Cara kerja fragmentasi memori

Fragmentasi memori terjadi ketika memori bebas tersedia tetapi terbagi menjadi segmen-segmen kecil yang tidak bersebelahan. Meskipun total memori bebas melebihi N byte, sistem operasi tidak dapat memenuhi permintaan untuk blok memori kontigu berukuran N byte—segmen-segmen yang tersebar tersebut merupakan fragmen memori.

Pada Tair (Redis OSS-Compatible), fragmen memori tidak mengurangi jumlah memori yang dialokasikan untuk instans Anda dan tidak menimbulkan biaya tambahan.

Catatan

Sebagai contoh, jika sebuah instans Tair (Redis OSS-Compatible) memiliki kapasitas 1 GB dengan 700 MB sedang digunakan, sisa 300 MB (1 GB − 700 MB) tetap tersedia meskipun rasio fragmentasi memori mencapai 2—artinya data secara fisik menempati 2 GB memori sistem.

Penyebab fragmentasi memori

Fragmentasi memori memiliki dua akar penyebab.

Perilaku alokator memori (internal)

Redis mendukung beberapa alokator memori: libc, jemalloc, dan tcmalloc. jemalloc merupakan alokator bawaan. Alih-alih mengalokasikan jumlah memori yang tepat sesuai permintaan aplikasi, jemalloc membulatkan ke batas pangkat-dua terdekat—8 byte, 16 byte, 32 byte, 2 KB, 4 KB, dan seterusnya. Selisih antara jumlah yang diminta dan jumlah yang dialokasikan menjadi fragmen.

Perubahan pasangan kunci-nilai (eksternal)

Ketika pasangan kunci-nilai dimodifikasi atau dihapus, memori yang ditempatinya dilepas atau diubah ukurannya. Karena ukuran blok yang dialokasikan jarang sesuai persis dengan ukuran data baru, celah-celah tersebut menumpuk seiring waktu.

Periksa rasio fragmentasi memori

Jalankan perintah berikut di DAS untuk melihat detail penggunaan memori:

INFO memory

Output mencakup:

# Memory
used_memory:350458970752
used_memory_human:326.39G
used_memory_rss:349066919936
used_memory_rss_human:325.09G
…
mem_fragmentation_ratio:1.00
FieldDescription
used_memoryMemori yang diminta Redis untuk menyimpan data
used_memory_rssMemori fisik yang dialokasikan sistem operasi untuk Redis, termasuk overhead fragmen
mem_fragmentation_ratioRasio fragmentasi memori saat ini

Rasio tersebut dihitung sebagai:

mem_fragmentation_ratio = used_memory_rss / used_memory

Interpretasi rasio

RasioStatusAksi yang direkomendasikan
1,0–1,5NormalTidak perlu tindakan
> 1,5TinggiMemori terfragmentasi melebihi separuh dari memori yang digunakan—lakukan investigasi dan ambil tindakan korektif