View a markdown version of this page

Penskalaan kapasitas dalam cluster DB Tanpa Server Neptune - 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 Tanpa Server Neptune

Menyiapkan cluster DB Tanpa Server Neptune mirip dengan menyiapkan cluster yang disediakan normal, dengan konfigurasi tambahan untuk unit minimum dan maksimum untuk penskalaan, dan dengan jenis instans yang disetel ke. db.serverless Konfigurasi penskalaan didefinisikan dalam Neptune Capacity Units (NCU), yang masing-masing terdiri dari 2 GiB (gibibyte) memori (RAM) bersama dengan kapasitas prosesor virtual (vCPU) dan jaringan terkait. Ini ditetapkan 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 dalam waktu, setiap penulis Neptunus atau instance pembaca memiliki kapasitas yang diukur dengan angka floating-point yang mewakili jumlah NCU yang saat ini digunakan oleh instance tersebut. Anda dapat menggunakan CloudWatch ServerlessDatabaseCapacity metrik pada tingkat instans untuk mengetahui berapa banyak NCU yang digunakan instans DB tertentu saat ini, dan metrik NCUUtilization untuk mengetahui persentase kapasitas maksimum yang digunakan instans. Kedua metrik ini juga tersedia di tingkat cluster DB untuk menunjukkan pemanfaatan sumber daya rata-rata untuk cluster DB secara keseluruhan.

Saat Anda membuat cluster Neptune Serverless DB, Anda menetapkan jumlah minimum dan maksimum unit kapasitas Neptunus (NCU) untuk semua instans tanpa server.

Nilai NCU minimum yang Anda tentukan menetapkan ukuran terkecil di mana instance tanpa server di cluster DB Anda dapat menyusut, dan demikian juga, nilai NCU maksimum menetapkan ukuran terbesar yang dapat tumbuh instance tanpa server. Nilai NCU maksimum tertinggi yang dapat Anda tetapkan adalah 128,0 NCU, dan minimum terendah adalah 1,0 NCU.

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

Ketika beban pada instans tanpa server mencapai batas kapasitas saat ini, atau ketika Neptunus mendeteksi masalah kinerja lainnya, instans akan meningkat secara otomatis. Ketika beban pada instance menurun, kapasitas akan diturunkan 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 menskalakan secara independen dengan menetapkan tingkat promosinya. Instans pembaca di tingkat promosi 0 dan 1 berskala bersamaan dengan penulis, yang menjaga ukurannya pada kapasitas yang tepat untuk mengambil alih beban kerja dari penulis dengan cepat jika terjadi failover. Pembaca di tingkat promosi 2 hingga 15 berskala secara independen dari contoh penulis, dan satu sama lain.

Jika Anda telah membuat cluster Neptune DB sebagai Multi-AZ cluster untuk memastikan ketersediaan tinggi, Neptune Serverless menskalakan instans di semua AZ ke atas dan ke bawah dengan beban database Anda. Anda dapat mengatur tingkat promosi instance pembaca di AZ sekunder menjadi 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 Neptune DB terdiri dari enam salinan semua data Anda, tersebar di tiga AZ, terlepas dari apakah Anda membuat cluster sebagai Multi-AZ cluster atau tidak. Replikasi penyimpanan ditangani oleh subsistem penyimpanan dan tidak terpengaruh oleh Neptune Serverless.

Memilih nilai kapasitas minimum untuk cluster Neptune Serverless DB

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

Pastikan untuk tidak menetapkan nilai minimum yang lebih rendah dari apa 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 ketika permintaan rendah. Namun, jika beban kerja Anda cenderung berfluktuasi secara dramatis, dari sangat rendah hingga sangat tinggi, Anda mungkin ingin menetapkan minimum lebih tinggi, karena minimum yang lebih tinggi memungkinkan instans Tanpa Server Neptune Anda meningkat lebih cepat.

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

Memilih nilai kapasitas maksimum untuk cluster Neptune Serverless DB

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

Sebagai aturan umum, atur 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 cenderung dapat menangani beban kerja yang paling tidak terduga sekalipun. Kerugiannya adalah Anda kehilangan beberapa kemampuan untuk memprediksi dan mengontrol 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 cermat adalah memungkinkan Anda memenuhi permintaan puncak sambil juga membatasi biaya komputasi Neptunus.

catatan

Mengubah rentang kapasitas cluster Neptune Serverless DB menyebabkan perubahan pada nilai default dari beberapa parameter konfigurasi. Neptunus dapat menerapkan beberapa default baru tersebut segera, 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 kebutuhan tanpa server

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

Perkirakan pengaturan kapasitas minimum terbaik

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

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

Atau, misalkan Anda menggunakan kelas instance db.r6g.xlarge DB ketika cluster Anda memiliki beban kerja yang rendah. Kelas instance DB itu memiliki memori 32 GiB, sehingga Anda dapat menentukan pengaturan NCU minimum 16 untuk membuat instans tanpa server yang dapat diturunkan hingga kira-kira kapasitas yang 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 diusir dari cache buffer ketika instans tanpa server menurun, dan harus dibaca kembali ke cache buffer seiring waktu ketika instans menskalakan kembali. Jika jumlah I/O untuk membawa data kembali ke cache buffer cukup 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. Neptune Serverless dapat secara efisien memperkirakan berapa banyak dan seberapa cepat untuk meningkatkan ketika kapasitas saat ini tidak secara drastis lebih rendah dari kapasitas yang dibutuhkan.

Dalam konfigurasi campuran, dengan penulis yang disediakan dan pembaca Neptune Serverless, pembaca tidak menskalakan bersama dengan penulis. Karena mereka menskalakan secara independen, menetapkan kapasitas minimum yang rendah untuk mereka dapat mengakibatkan jeda 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 situasi ini, tetapkan kapasitas minimum yang sebanding dengan kapasitas penulis. Secara khusus, jika Anda mengamati kelambatan replika pada pembaca yang berada di tingkat promosi 2—15, tingkatkan pengaturan kapasitas minimum untuk cluster Anda.

Perkirakan pengaturan kapasitas maksimum terbaik

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

Misalnya, Anda menggunakan kelas instance db.r6g.4xlarge DB ketika cluster Anda memiliki beban kerja yang tinggi. Kelas instance DB itu memiliki memori 128 GiB, sehingga Anda dapat menentukan pengaturan NCU maksimum 64 untuk mengatur instans Neptune Serverless yang setara (setiap NCU sesuai dengan sekitar 2 GiB memori). Anda dapat menentukan nilai yang lebih tinggi untuk membiarkan instance DB ditingkatkan lebih jauh jika db.r6g.4xlarge instance 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 memungkinkan Neptunus menangani beban kerja yang diharapkan tanpa masalah, dan itu membatasi biaya.