View a markdown version of this page

2- Throughput yang disediakan terlampaui - Amazon DynamoDB

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:

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:

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:

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:

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:

Prosedur resolusi

Meningkatkan kapasitas throughput tabel

Gunakan prosedur ini saat Auto Scaling tidak diaktifkan dan Anda memerlukan peningkatan kapasitas segera.

  1. Perbarui kapasitas tabel yang disediakan menggunakan konsol DynamoDB, AWS CLI, atau SDK:

    • Untuk kapasitas baca: Ting katkan ReadCapacityUnits parameter, yang menentukan jumlah maksimum pembacaan yang sangat konsisten yang dikonsumsi per detik sebelum DynamoDB membatasi permintaan.

    • Untuk kapasitas tulis: Ting katkan WriteCapacityUnits parameter, yang menentukan jumlah maksimum penulisan yang dikonsumsi per detik sebelum DynamoDB membatasi permintaan.

  2. 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.

  1. Aktifkan Auto Scaling untuk kapasitas baca, kapasitas tulis, atau keduanya di meja atau GSI Anda.

  2. 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.

  3. 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.

  1. Perbarui kapasitas yang disediakan GSI menggunakan konsol DynamoDB,, AWS CLI atau SDK:

    • Untuk kapasitas baca: Tingkatkan ReadCapacityUnits parameter 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 WriteCapacityUnits parameter untuk GSI tertentu, yang menentukan jumlah maksimum penulisan yang dapat dikonsumsi GSI per detik sebelum permintaan DynamoDB membatasi.

  2. Pastikan bahwa kapasitas throughput yang disediakan GSI tetap berada dalam kuota throughput per akun dan per tabel.

Sumber daya tambahan