Penskalaan kapasitas dalam cluster DB Neptunus Tanpa Server - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penskalaan kapasitas dalam cluster DB Neptunus Tanpa Server

Menyiapkan cluster DB Tanpa Server Neptunus mirip dengan menyiapkan cluster yang disediakan normal, dengan konfigurasi tambahan untuk unit minimum dan maksimum untuk penskalaan, dan dengan jenis instans disetel ke. db.serverless Konfigurasi penskalaan didefinisikan dalam Unit Kapasitas Neptunus (NCU), yang masing-masing terdiri dari 2 GiB (gibibyte) memori (RAM) bersama dengan kapasitas prosesor virtual terkait (vCPU) dan jaringan. Hal ini diatur sebagai bagian dari ServerlessV2ScalingConfiguration objek, diwakili dalam JSON seperti ini:

"ServerlessV2ScalingConfiguration": { "MinCapacity": (minimum NCUs, a floating-point number such as 1.0), "MaxCapacity": (maximum NCUs, a floating-point number such as 128.0) }

Setiap saat, setiap penulis atau instance pembaca Neptunus memiliki kapasitas yang diukur dengan angka floating-point yang mewakili jumlah NCU yang saat ini digunakan oleh instance tersebut. Anda dapat menggunakan metrik CloudWatch ServerlessDatabaseKapasitas pada tingkat instans untuk mengetahui berapa banyak NCU yang digunakan instans DB tertentu saat ini, dan metrik NCUUutilization untuk mengetahui berapa persentase kapasitas maksimumnya yang digunakan instans. Kedua metrik ini juga tersedia pada tingkat cluster DB untuk menunjukkan pemanfaatan sumber daya rata-rata untuk cluster DB secara keseluruhan.

Saat Anda membuat cluster DB Tanpa Server Neptunus, Anda menetapkan jumlah minimum dan maksimum unit kapasitas Neptunus (NCU) untuk semua instance tanpa server.

Nilai NCU minimum yang Anda tentukan menetapkan ukuran terkecil yang dapat menyusut instans tanpa server di kluster DB Anda, dan juga, nilai NCU maksimum menetapkan ukuran terbesar tempat instance tanpa server dapat tumbuh. Nilai NCU maksimum tertinggi yang dapat Anda atur adalah 128,0 NCU, dan minimum terendah adalah 1,0 NCU.

Neptunus terus melacak beban pada setiap instance Neptunus Tanpa Server dengan memantau pemanfaatan sumber daya seperti CPU, memori, dan jaringan. Beban dihasilkan oleh operasi database aplikasi Anda, dengan pemrosesan latar belakang untuk server, dan oleh tugas administratif lainnya.

Ketika beban pada instance tanpa server mencapai batas kapasitas saat ini, atau saat Neptunus mendeteksi masalah kinerja lainnya, instans akan meningkat secara otomatis. Ketika beban pada instans menurun, kapasitas akan turun ke unit kapasitas minimum yang dikonfigurasi, dengan kapasitas CPU dilepaskan sebelum memori. Arsitektur ini memungkinkan pelepasan sumber daya dengan cara step-down yang terkontrol dan menangani fluktuasi permintaan secara efektif.

Anda dapat membuat skala instance pembaca bersama dengan instance penulis atau skala secara independen dengan menetapkan tingkat promosinya. Contoh pembaca dalam skala promosi 0 dan 1 pada saat yang sama dengan penulis, yang membuat mereka berukuran pada kapasitas yang tepat untuk mengambil alih beban kerja dari penulis dengan cepat jika terjadi kegagalan. Pembaca di tingkat promosi 2 hingga 15 skala independen dari contoh penulis, dan satu sama lain.

Jika Anda telah membuat cluster DB Neptunus sebagai klaster multi-AZ untuk memastikan ketersediaan tinggi, Neptune Serverless menskalakan instance di semua AZ naik dan turun dengan pemuatan basis data Anda. Anda dapat mengatur tingkat promosi instance pembaca di AZ sekunder ke 0 atau 1 sehingga skala naik dan turun bersama dengan kapasitas instance penulis di AZ utama sehingga siap untuk mengambil alih beban kerja saat ini kapan saja.

catatan

Penyimpanan untuk cluster DB Neptunus terdiri dari enam salinan dari semua data Anda, tersebar di tiga AZ, terlepas dari apakah Anda membuat cluster sebagai cluster multi-AZ atau tidak. Replikasi penyimpanan ditangani oleh subsistem penyimpanan dan tidak terpengaruh oleh Neptunus Tanpa Server.

Memilih nilai kapasitas minimum untuk cluster DB Neptunus Tanpa Server

Nilai terkecil yang dapat Anda atur untuk kapasitas minimum adalah 1.0 NCU.

Pastikan untuk tidak menetapkan nilai minimum lebih rendah dari yang dibutuhkan aplikasi Anda untuk beroperasi secara efisien. Mengaturnya terlalu rendah dapat menghasilkan tingkat batas waktu yang lebih tinggi dalam beban kerja intensif memori tertentu.

Menetapkan nilai minimum serendah mungkin dapat menghemat uang, karena cluster Anda akan menggunakan sumber daya minimal saat permintaan rendah. Namun, jika beban kerja Anda cenderung berfluktuasi secara dramatis, dari sangat rendah hingga sangat tinggi, Anda mungkin ingin menetapkan minimum yang lebih tinggi, karena minimum yang lebih tinggi memungkinkan instans Neptunus Tanpa Server Anda meningkat lebih cepat.

Alasan untuk ini adalah bahwa Neptunus memilih peningkatan skala berdasarkan kapasitas saat ini. Jika kapasitas saat ini rendah, Neptunus awalnya akan meningkat secara perlahan. Jika minimum lebih tinggi, Neptunus dimulai dengan peningkatan skala yang lebih besar, dan karena itu dapat meningkatkan skala lebih cepat untuk memenuhi peningkatan beban kerja yang tiba-tiba.

Memilih nilai kapasitas maksimum untuk cluster DB Neptunus Tanpa Server

Nilai terbesar yang dapat Anda atur untuk kapasitas maksimum adalah 128.0 NCU, dan nilai terkecil yang dapat Anda tetapkan untuk kapasitas maksimum adalah 2.5 NCU. Apapun nilai kapasitas maksimum yang Anda tetapkan harus setidaknya sebesar nilai kapasitas minimum yang Anda tetapkan.

Sebagai aturan umum, tetapkan nilai maksimum yang cukup tinggi untuk menangani beban puncak yang mungkin dihadapi aplikasi Anda. Mengaturnya terlalu rendah dapat menghasilkan tingkat batas waktu yang lebih tinggi dalam beban kerja intensif memori tertentu.

Menetapkan nilai maksimum setinggi mungkin memiliki keuntungan bahwa aplikasi Anda kemungkinan besar dapat menangani beban kerja yang paling tidak terduga sekalipun. Kerugiannya adalah Anda kehilangan beberapa kemampuan untuk memprediksi dan mengendalikan biaya sumber daya. Lonjakan permintaan yang tidak terduga dapat berakhir dengan biaya lebih dari yang diperkirakan anggaran Anda.

Manfaat dari nilai maksimum yang ditargetkan dengan hati-hati adalah memungkinkan Anda memenuhi permintaan puncak sambil juga membatasi biaya komputasi Neptunus.

catatan

Mengubah rentang kapasitas cluster DB Neptunus Tanpa Server menyebabkan perubahan pada nilai default dari beberapa parameter konfigurasi. Neptunus dapat segera menerapkan beberapa default baru tersebut, tetapi beberapa perubahan parameter dinamis hanya berlaku setelah reboot. pending-rebootStatus menunjukkan bahwa Anda memerlukan reboot untuk menerapkan beberapa perubahan parameter.

Gunakan konfigurasi yang ada untuk memperkirakan persyaratan tanpa server

Jika Anda biasanya memodifikasi kelas instans DB dari instans DB yang disediakan untuk memenuhi beban kerja yang sangat tinggi atau rendah, Anda dapat menggunakan pengalaman itu untuk membuat perkiraan kasar rentang kapasitas Neptunus Tanpa Server yang setara.

Perkirakan pengaturan kapasitas minimum terbaik

Anda dapat menerapkan apa yang Anda ketahui tentang cluster DB Neptunus yang ada untuk memperkirakan pengaturan kapasitas minimum tanpa server yang akan bekerja paling baik.

Misalnya, jika beban kerja Anda yang disediakan memiliki persyaratan memori yang terlalu tinggi untuk kelas instans DB kecil seperti T3 atauT4g, pilih pengaturan NCU minimum yang menyediakan memori yang sebanding dengan kelas instans R5 atau R6g DB.

Atau, misalkan Anda menggunakan kelas instans db.r6g.xlarge DB ketika cluster Anda memiliki beban kerja yang rendah. Kelas instans DB itu memiliki memori 32 GiB, sehingga Anda dapat menentukan pengaturan NCU minimum 16 untuk membuat instance tanpa server yang dapat menurunkan kapasitas yang kira-kira sama (setiap NCU sesuai dengan sekitar 2 GiB memori). Jika db.r6g.xlarge instance Anda terkadang kurang dimanfaatkan, Anda mungkin dapat menentukan nilai yang lebih rendah.

Jika aplikasi Anda bekerja paling efisien ketika instans DB Anda dapat menyimpan sejumlah data tertentu dalam memori atau cache buffer, pertimbangkan untuk menentukan pengaturan NCU minimum yang cukup besar untuk menyediakan memori yang cukup untuk itu. Jika tidak, data dapat dikeluarkan dari cache buffer saat instance tanpa server menurunkan skala, dan harus dibaca kembali ke cache buffer dari waktu ke waktu ketika instance diskalakan cadangan. Jika jumlah I/O untuk membawa data kembali ke cache buffer sangat besar, memilih nilai NCU minimum yang lebih tinggi bisa bermanfaat.

Jika Anda menemukan bahwa instans tanpa server Anda berjalan sebagian besar waktu pada kapasitas tertentu, itu berfungsi dengan baik untuk mengatur kapasitas minimum hanya sedikit lebih rendah dari itu. Neptunus Tanpa Server dapat secara efisien memperkirakan berapa banyak dan seberapa cepat untuk ditingkatkan ketika kapasitas saat ini tidak secara drastis lebih rendah dari kapasitas yang dibutuhkan.

Dalam konfigurasi campuran, dengan penulis yang disediakan dan pembaca Neptunus Tanpa Server, pembaca tidak berskala bersama penulis. Karena mereka menskalakan secara independen, pengaturan kapasitas minimum yang rendah untuk mereka dapat mengakibatkan kelambatan replikasi yang berlebihan. Mereka mungkin tidak memiliki kapasitas yang cukup untuk mengikuti perubahan yang dibuat penulis ketika ada beban kerja yang sangat intensif menulis. Dalam hal ini, tetapkan kapasitas minimum yang sebanding dengan kapasitas penulis. Khususnya, jika Anda mengamati kelambatan replika pada pembaca yang berada di tingkatan promosi 2—15, tingkatkan pengaturan kapasitas minimum untuk klaster Anda.

Perkirakan pengaturan kapasitas maksimum terbaik

Anda juga dapat menerapkan apa yang Anda ketahui tentang cluster DB Neptunus yang ada untuk memperkirakan pengaturan kapasitas maksimum tanpa server yang akan bekerja paling baik.

Misalnya, Anda menggunakan kelas instans db.r6g.4xlarge DB ketika cluster Anda memiliki beban kerja yang tinggi. Kelas instans DB itu memiliki memori 128 GiB, sehingga Anda dapat menentukan pengaturan NCU maksimum 64 untuk mengatur instance Tanpa Server Neptunus yang setara (setiap NCU sesuai dengan sekitar 2 GiB memori). Anda dapat menentukan nilai yang lebih tinggi agar instans DB ditingkatkan lebih lanjut jika db.r6g.4xlarge instans Anda tidak selalu dapat menangani beban kerja.

Jika lonjakan tak terduga dalam beban kerja Anda jarang terjadi, mungkin masuk akal untuk mengatur kapasitas maksimum Anda cukup tinggi untuk mempertahankan kinerja aplikasi bahkan selama lonjakan tersebut. Di sisi lain, Anda mungkin ingin menetapkan kapasitas maksimum yang lebih rendah yang dapat mengurangi throughput selama lonjakan yang tidak biasa tetapi itu memungkinkan Neptunus untuk menangani beban kerja yang Anda harapkan tanpa masalah, dan itu membatasi biaya.