Praktik terbaik

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.

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