Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
2- Throughput yang disediakan terlampaui
Pelambatan kapasitas yang disediakan terjadi ketika tingkat konsumsi aplikasi melebihi unit kapasitas baca atau tulis yang di RCUs/WCUs konfigurasi untuk tabel atau indeks sekunder global. Meskipun DynamoDB menyediakan kapasitas burst untuk menangani lonjakan lalu lintas sesekali, permintaan berkelanjutan di luar batas yang Anda sediakan mengakibatkan pelambatan. Ketika ini terjadi, DynamoDB mengembalikan tipe alasan pelambatan dalam pengecualian ProvisionedThroughputExceeded throttling. Alasannya mengidentifikasi apakah masalahnya adalah dengan operasi baca atau tulis dan apakah itu mempengaruhi tabel dasar atau indeks sekunder global.
Pelambatan dapat terjadi terlepas dari apakah Auto Scaling diaktifkan. Penskalaan Otomatis menyesuaikan dengan peningkatan konsumsi, tetapi tidak merespons secara instan dan dibatasi oleh batas kapasitas maksimum yang Anda konfigurasikan. Ini berarti pelambatan masih dapat terjadi selama lonjakan lalu lintas mendadak atau ketika konsumsi melebihi batas Penskalaan Otomatis maksimum Anda.
Throughput yang disediakan melebihi langkah-langkah mitigasi
Bagian ini memberikan panduan resolusi untuk skenario pelambatan kapasitas yang disediakan. Sebelum menggunakan panduan ini, pastikan Anda telah mengidentifikasi alasan pelambatan spesifik dari penanganan pengecualian aplikasi Anda, dan menentukan Nama Sumber Daya Amazon (ARN) dari sumber daya yang terpengaruh. Untuk informasi tentang mengambil alasan pelambatan dan mengidentifikasi sumber daya yang dibatasi, lihat. Kerangka diagnosis pelambatan DynamoDB
Sebelum menyelami skenario pelambatan tertentu, pertama-tama pertimbangkan apakah throttling sebenarnya adalah masalah yang perlu diselesaikan:
-
Pelambatan sesekali normal dan diharapkan dalam aplikasi DynamoDB yang dioptimalkan dengan baik. Throttling berarti Anda mengonsumsi 100% dari apa yang telah Anda sediakan. Jika aplikasi Anda menangani pelambatan dengan lancar dengan percobaan ulang dan kinerja Anda secara keseluruhan memenuhi persyaratan, pelambatan mungkin tidak memerlukan tindakan segera.
-
Namun, jika pelambatan menyebabkan latensi sisi klien yang tidak dapat diterima, menurunkan pengalaman pengguna, atau mencegah operasi penting diselesaikan tepat waktu, lanjutkan dengan opsi mitigasi di bawah ini.
Ketika Anda perlu mengatasi masalah pelambatan, pertama-tama tentukan apakah pelambatan Anda disebabkan oleh:
-
Lonjakan lalu lintas sementara: Short-duration peningkatan lalu lintas yang melebihi kapasitas yang disediakan tetapi tidak berkelanjutan. Ini membutuhkan strategi yang berbeda dari lalu lintas tinggi terus menerus.
-
Lalu lintas tinggi terus menerus: Beban kerja berkelanjutan yang secara konsisten melebihi kapasitas yang disediakan.
Untuk lonjakan lalu lintas, pertimbangkan strategi dari blog Tangani lonjakan lalu lintas dengan kapasitas yang disediakan Amazon DynamoDB di. Sumber daya tambahan
Untuk lalu lintas tinggi terus menerus, pertimbangkan opsi penyesuaian kapasitas di bawah ini:
TableReadProvisionedThroughputExceeded
Ketika ini terjadi
Tingkat konsumsi baca aplikasi Anda melebihi unit kapasitas baca yang disediakan (RCU) yang dikonfigurasi untuk tabel Anda. Anda dapat memantau CloudWatch metrik Diagnosis dan pemantauan umum untuk menganalisis peristiwa pelambatan Anda.
Pendekatan resolusi
Pertimbangkan strategi ini untuk mengatasi pelambatan kapasitas baca:
-
Beralih ke mode kapasitas sesuai permintaan: Per timbangkan untuk mengalihkan tabel Anda ke sesuai permintaan jika Anda sering mengalami pelambatan akibat lonjakan lalu lintas. On-demand menghilangkan masalah penyediaan dan secara otomatis menyesuaikan dengan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Penskalaan Otomatis tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas baca tabel.
-
Aktifkan Auto Scaling untuk kapasitas baca di meja Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
TableWriteProvisionedThroughputExceeded
Ketika ini terjadi
Tingkat konsumsi tulis aplikasi Anda melebihi unit kapasitas tulis (WCU) yang disediakan yang dikonfigurasi untuk tabel Anda. Anda dapat memantau CloudWatch metrik Diagnosis dan pemantauan umum untuk menganalisis peristiwa pelambatan Anda.
Pendekatan resolusi
Pertimbangkan strategi ini untuk mengatasi pelambatan kapasitas tulis:
-
Beralih ke mode kapasitas sesuai permintaan: Per timbangkan untuk mengalihkan tabel Anda ke sesuai permintaan jika Anda sering mengalami pelambatan akibat lonjakan lalu lintas. On-demand menghilangkan masalah penyediaan dan secara otomatis menyesuaikan dengan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Penskalaan Otomatis tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas penulisan tabel.
-
Aktifkan Auto Scaling untuk kapasitas tulis di tabel Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
IndexReadProvisionedThroughputExceeded
Ketika ini terjadi
Konsumsi baca pada Indeks Sekunder Global (GSI) melebihi unit kapasitas baca yang disediakan https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html#DDB-Type-ProvisionedThroughput-ReadCapacityUnits (RCU) GSI. Anda dapat memantau CloudWatch metrik Diagnosis dan pemantauan umum untuk menganalisis peristiwa pelambatan Anda.
Pendekatan resolusi
Pertimbangkan strategi ini untuk mengatasi pelambatan kapasitas baca GSI:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengal ihkan tabel dasar ke on-demand jika Anda sering mengalami pelambatan akibat lonjakan lalu lintas. On-demand menghilangkan masalah penyediaan dan secara otomatis menyesuaikan dengan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Penskalaan Otomatis tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas baca GSI.
-
Aktifkan Auto Scaling untuk kapasitas baca pada GSI Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
-
Optimalkan parameter Auto Scaling baca GSI Anda.
-
IndexWriteProvisionedThroughputExceeded
Ketika ini terjadi
Pembaruan untuk item dalam tabel dasar memicu penulisan ke GSI yang melebihi kapasitas tulis yang disediakan GSI. Hal ini menyebabkan pel ambatan tekanan balik pada penulisan tabel dasar. Anda dapat memantau CloudWatch metrik Diagnosis dan pemantauan umum untuk menganalisis peristiwa pelambatan Anda.
Pendekatan resolusi
Pertimbangkan strategi ini untuk mengatasi pelambatan kapasitas tulis GSI:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengal ihkan tabel dasar ke on-demand jika Anda sering mengalami pelambatan akibat lonjakan lalu lintas. On-demand menghilangkan masalah penyediaan dan secara otomatis menyesuaikan dengan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Penskalaan Otomatis tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas tulis GSI.
-
Aktifkan Auto Scaling untuk kapasitas tulis pada GSI Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
-
Optimalkan parameter penskalaan otomatis tulis GSI Anda.
-
Diagnosis dan pemantauan umum
Saat memecahkan masalah kesalahan throughput, beberapa CloudWatch metrik dapat membantu mengidentifikasi akar penyebabnya.
CloudWatch Metrik penting
Pantau metrik utama ini untuk mendiagnosis pelambatan kapasitas yang disediakan:
-
Peristiwa pembatasan:
ReadProvisionedThroughputThrottleEventsdanWriteProvisionedThroughputThrottleEventslacak kapan permintaan dibatasi karena alasan ini.ReadThrottleEventsdanWriteThrottleEventslacak ketika permintaan baca atau tulis melebihi kapasitas yang disediakan. -
Konsumsi kapasitas:
ConsumedReadCapacityUnitsdanConsumedWriteCapacityUnitsmenunjukkan penggunaan aktual. -
Kapasitas yang disediakan:
ProvisionedReadCapacityUnitsdan tampProvisionedWriteCapacityUnitsilkan batas yang dikonfigurasi.
Prosedur resolusi
Meningkatkan kapasitas throughput tabel
Gunakan prosedur ini saat Auto Scaling tidak diaktifkan dan Anda memerlukan peningkatan kapasitas segera.
-
Perbarui kapasitas tabel yang disediakan menggunakan konsol DynamoDB, AWS CLI, atau SDK:
-
Untuk kapasitas baca: Ting katkan
ReadCapacityUnitsparameter, yang menentukan jumlah maksimum pembacaan yang sangat konsisten yang dikonsumsi per detik sebelum DynamoDB membatasi permintaan. -
Untuk kapasitas tulis: Ting katkan
WriteCapacityUnitsparameter, yang menentukan jumlah maksimum penulisan yang dikonsumsi per detik sebelum DynamoDB membatasi permintaan.
-
-
Pastikan pengaturan kapasitas baru Anda tidak melebihi kuota throughput per tabel dan bahwa total konsumsi akun Anda tetap di bawah kuota throughput per akun untuk Wilayah Anda. Jika Anda mendekati batas ini, pertimbangkan untuk beralih ke mode kapasitas sesuai permintaan sebagai gantinya.
Mengkonfigurasi tabel Auto Scaling untuk menyesuaikan kapasitas baca atau tulis tabel atau GSI Anda
Konfigurasikan DynamoDB Auto Scal ing untuk menyesuaikan kapasitas baca atau tulis secara otomatis berdasarkan pola lalu lintas. Anda dapat mengonfigurasi Auto Scaling secara independen untuk tabel dan GSI, dengan kontrol terpisah untuk unit kapasitas baca dan tulis.
-
Aktifkan Auto Scaling untuk kapasitas baca, kapasitas tulis, atau keduanya di meja atau GSI Anda.
-
Tetapkan persentase pemanfaatan target dengan headroom untuk lonjakan lalu lintas.
catatan
Pemanfaatan target yang lebih rendah meningkatkan biaya dan frekuensi penskalaan. Target di bawah 40% dapat menyebabkan kelebihan penyediaan. Pantau pola penggunaan dan biaya untuk menyeimbangkan kinerja dan efisiensi.
-
Tetapkan batas kapasitas:
-
Minimum RCUs/WCUs: Memper tahankan kapasitas yang cukup selama periode lalu lintas rendah.
-
Maksimum RCUs/WCUs: Meng akomodasi tuntutan lalu lintas puncak dan melindungi dari peristiwa penskalaan yang tak terkendali.
-
Untuk panduan mengonfigurasi dan mengelola DynamoDB Auto Scaling, lihat Mengelola kapasitas throughput secara otomatis dengan DynamoDB Auto Scaling.
catatan
Auto Scaling biasanya membutuhkan waktu beberapa menit untuk merespons perubahan lalu lintas. Untuk lonjakan lalu lintas yang tiba-tiba, kapasitas burst tabel Anda memberikan perlindungan langsung sementara Penskalaan Otomatis menyesuaikan. Konfigurasikan pemanfaatan target dengan ruang kepala yang memadai untuk memberikan waktu untuk operasi penskalaan dan untuk mempertahankan kapasitas burst untuk permintaan yang tidak terduga.
Mengoptimalkan pengaturan penskalaan otomatis baca atau tulis tabel atau indeks Anda
Gunakan prosedur ini saat Auto Scaling diaktifkan tetapi pelambatan masih terjadi. Anda dapat menyetel Auto Scaling secara independen untuk tabel dan indeks sekunder global (GSI), dengan kontrol terpisah untuk unit kapasitas baca dan tulis.
-
Sesuaikan pemanfaatan target: Pertimbangkan untuk menurunkan pemanfaatan target untuk tabel atau GSI Anda untuk memicu penskalaan lebih awal sebelum pelambatan terjadi. Pastikan Anda memantau lalu lintas Anda setelah melakukan penyesuaian ini. Lihat Mengkonfigurasi tabel Auto Scaling untuk menyesuaikan kapasitas baca atau tulis tabel atau GSI Anda untuk informasi lebih lanjut tentang konsumsi kapasitas dan implikasi biaya.
-
Tinjau batas kapasitas: Pastikan pengaturan kapasitas minimum dan maksimum Anda selaras dengan pola beban kerja aktual Anda.
Beralih ke mode kapasitas sesuai permintaan
Untuk informasi umum tentang beralih mode kapasitas, lihatPertimbangan saat mengganti mode kapasitas di DynamoDB. Lihat Kuota Layanan untuk mempelajari kendala tertentu saat beralih mode.
Meningkatkan kapasitas throughput GSI
Gunakan prosedur ini ketika Auto Scaling tidak diaktifkan pada GSI Anda atau Anda memerlukan peningkatan kapasitas segera.
-
Perbarui kapasitas yang disediakan GSI menggunakan konsol DynamoDB,, AWS CLI atau SDK:
-
Untuk kapasitas baca: Tingkatkan
ReadCapacityUnitsparameter untuk GSI tertentu, yang menentukan jumlah maksimum pembacaan yang dapat dikonsumsi GSI per detik sebelum permintaan DynamoDB membatasi. Perhatikan bahwa GSI hanya mendukung pembacaan yang akhirnya konsisten. -
Untuk kapasitas tulis: Tingkatkan
WriteCapacityUnitsparameter untuk GSI tertentu, yang menentukan jumlah maksimum penulisan yang dapat dikonsumsi GSI per detik sebelum permintaan DynamoDB membatasi.
-
-
Pastikan bahwa kapasitas throughput yang disediakan GSI tetap berada dalam kuota throughput per akun dan per tabel.
Sumber daya tambahan
-
Untuk informasi terperinci tentang penanganan lonjakan lalu lintas di tabel kapasitas yang disediakan DynamoDB, termasuk berbagai strategi mulai dari memanfaatkan Penskalaan Otomatis dan kapasitas burst hingga manajemen throttle strategis, lihat Menangani lonjakan lalu lintas dengan kapasitas yang disediakan Amazon DynamoDB.
-
Untuk informasi tentang cara menggunakan ekspresi cron untuk menjadwalkan kebijakan penskalaan, lihat Meng optimalkan biaya dengan menjadwalkan kapasitas yang disediakan untuk DynamoDB.
-
Untuk informasi langsung tentang pemantauan dan analisis pola pemanfaatan throughput untuk tabel DynamoDB Anda dalam mode kapasitas yang disediakan, lihat Cara mengevaluasi pemanfaatan throughput untuk tabel Amazon DynamoDB dalam mode disediakan.