Halaman ini menjelaskan praktik terbaik yang harus diikuti saat menggunakan Memorystore for Memcached.
Rancang aplikasi Anda untuk menangani cache yang tidak ditemukan
Anda harus mengikuti praktik terbaik desain cache standar dengan mendesain cache untuk menangani cache yang tidak ditemukan dan ketidaktersediaan layanan. Lihat Perjanjian Tingkat Layanan untuk mengetahui informasi tentang komitmen Memorystore for Memcached terhadap waktu beroperasi.
Rancang aplikasi Anda agar cache tidak ditemukan dan periode nonaktif layanan sementara tidak menghentikan aplikasi Anda untuk mengambil data dari database pokok yang didukung instance Memcached Anda.
Selain itu, jika Anda mengalami ketidaktersediaan ruang kunci, tunggu dan coba lagi menggunakan backoff eksponensial. Pastikan untuk menetapkan batas waktu saat strategi percobaan ulang Anda akan berhenti.
Menghubungkan ke node Memcached
Saat membuat kueri node Memcached dengan perintah seperti set
, get
, dan delete
, Anda harus terhubung ke alamat IP node secara langsung. Anda dapat
menjalankan perintah ini di endpoint Auto Discovery, tetapi hal ini tidak
direkomendasikan karena menyebabkan penurunan performa aplikasi Anda.
Penemuan otomatis direkomendasikan
Sebaiknya gunakan layanan Auto Discovery Memorystore for Memcached. Layanan ini mengotomatiskan pengelolaan alamat IP cluster saat menambahkan atau menghapus node dari cluster Anda. Untuk mengetahui petunjuk cara menyiapkan penemuan otomatis bagi cluster, lihat Menggunakan Layanan Penemuan Otomatis.
Mengonfigurasi parameter max-item-size
dengan benar
Bagian ini menjelaskan cara terbaik untuk mengonfigurasi parameter max-item-size
. Untuk
langkah-langkah dalam menyesuaikan parameter konfigurasi ini, lihat Mengonfigurasi instance Memcached.
Untuk mengetahui daftar lengkap parameter konfigurasi Memcached yang tersedia, lihat Konfigurasi Memcached.
Nilai dan nilai default yang didukung
Untuk Memcached open source, nilai minimum untuk max-item-size
adalah 1KiB
, nilai maksimumnya adalah 1 GiB
, dan nilai defaultnya adalah 1 MiB
. Untuk
Memorystore untuk Memcached, nilai minimumnya adalah 512 KiB
, nilai maksimumnya adalah 128
MiB
, dan nilai defaultnya adalah 1 MiB
. Selain itu, nilai apa pun yang Anda tetapkan konfigurasi ini harus dapat dibagi merata oleh 512 KiB
.
Menyimpan entri ke cache yang lebih besar dari max-item-size
yang dikonfigurasi
Saat Anda mencoba menyimpan entri yang lebih besar dari max-item-size
yang dikonfigurasi ke dalam cache, Memcached akan gagal menjalankan operasi dan menampilkan nilai salah (false). Jika memungkinkan, build logika ke dalam
aplikasi Anda untuk menampilkan error ini dari klien Memcached OSS sehingga Anda dapat
men-debug-nya. Mencoba menyimpan entri yang lebih besar dari max-item-size
yang dikonfigurasi ke dalam cache dapat menyebabkan latensi tinggi untuk instance Anda.
Menyetel max-item-size
ke nilai maksimum
Anda dapat menyelesaikan beberapa masalah terkait parameter max-item-size
dengan menetapkannya ke
nilai maksimum. Namun, ini bukan praktik yang baik, jadi Anda sebaiknya tidak menggunakan
strategi ini dalam produksi. Pengelolaan memori memcache didasarkan pada slab, dan
menyimpan item yang lebih besar dari slab akan menyebabkan alokasi memori
yang tidak efisien.
Menghindari masalah konfigurasi max-item-size
Pertama, cari tahu ukuran item maksimum yang diperlukan untuk cache Anda. Tetapkan
max-item-size
agar sedikit lebih besar dari ukuran item terbesar, sebagai margin
keamanan.
Perlu diperhatikan bahwa ukuran nilai yang ditulis ke cache dapat berubah dalam aplikasi Anda dari waktu ke waktu. Selain itu, konfigurasi cluster dapat salah (misalnya, saat bermigrasi dari satu lingkungan ke lingkungan lain). Tindakan tambahan yang dapat Anda lakukan adalah memvalidasi ukuran item maksimum dalam aplikasi, sehingga permintaan ditolak jika aplikasi Anda mencoba menyimpan item dalam cache yang lebih besar dari setelan yang dikonfigurasi.
Cara menyeimbangkan cluster Memcached yang tidak seimbang
Bagaimana klaster yang tidak seimbang terjadi, dan risiko terkait
Dalam beberapa situasi yang jarang terjadi, ketika Anda membuat, node instance Memcached dapat didistribusikan secara tidak merata di seluruh zona dalam suatu region. Hal ini terjadi saat zona tidak tersedia pada saat yang sama saat Anda menyediakan cluster.
Cluster yang tidak seimbang meningkatkan potensi kehilangan data karena node tidak didistribusikan secara merata sebagaimana mestinya. Cluster tidak secara otomatis menyeimbangkan kembali saat zona yang turun kembali online.
Cara menyeimbangkan kembali cluster Anda
Anda dapat menyeimbangkan kembali cluster dengan menambah jumlah node di cluster untuk sementara, lalu memperkecil jumlah node ke jumlah node semula. Tindakan meningkatkan dan menurunkan skala ini memungkinkan sistem Memorystore for Memcached mendistribusikan ulang node secara merata di seluruh zona yang tersedia.
Keberhasilan metode ini untuk menyeimbangkan ulang cluster bergantung pada ketersediaan zona yang dimaksud. Google Cloud saat ini tidak mencantumkan zona yang tersedia/tidak tersedia, sehingga Anda hanya dapat mengetahui apakah zona tersebut online jika node diseimbangkan dengan benar selama operasi penskalaan.
Praktik terbaik Cloud Monitoring
Untuk melacak performa cache dari waktu ke waktu, Anda harus menggunakan Cloud Monitoring untuk memantau beberapa metrik penting Memorystore for Memcached:
- Penggunaan memori (
memcache.googleapis.com/node/cache_memory
) - Persentase penggunaan CPU (
memcache.googleapis.com/node/cpu/utilization
)
Melacak kedua metrik ini dari waktu ke waktu membantu Anda menentukan seberapa efisien cluster digunakan, dan apakah Anda harus mempertimbangkan untuk menambah atau mengurangi ukuran cluster.
Misalnya, jika metrik menunjukkan bahwa penggunaan memori dan penggunaan CPU telah meningkat dari waktu ke waktu hingga lebih dari 80%, tren tersebut dapat berlanjut. Akibatnya, Anda dapat meningkatkan ukuran instance lebih awal agar cache memiliki ruang untuk menyimpan nilai baru seiring meningkatnya persyaratan resource aplikasi.
Sebaiknya setel pemberitahuan saat penggunaan memori dan penggunaan CPU Anda mencapai 80%.
Atau, melacak metrik ini dari waktu ke waktu dapat menunjukkan bahwa Anda tidak menggunakan semua ruang dan resource CPU yang Anda miliki saat ini. Dalam hal ini, akan lebih hemat biaya jika Anda mengurangi ukuran cluster.
Langkah selanjutnya
- Pelajari layanan Penemuan Otomatis lebih lanjut.
- Tinjau parameter konfigurasi Memcache yang dapat diubah.