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 Anda melebihi unit kapasitas baca atau tulis (RCUs/WCUs) yang dikonfigurasi untuk tabel atau indeks sekunder global. Meskipun DynamoDB menyediakan kapasitas burst untuk menangani lonjakan lalu lintas sesekali, permintaan berkelanjutan di luar batas yang Anda berikan menghasilkan pelambatan. Ketika ini terjadi, DynamoDB mengembalikan tipe alasan pelambatan ProvisionedThroughputExceeded dalam pengecualian pelambatan. 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. Auto Scaling beradaptasi 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 Auto Scaling maksimum Anda.

Throughput yang disediakan melebihi langkah-langkah mitigasi

Bagian ini memberikan panduan resolusi untuk skenario pembatasan kapasitas yang disediakan. Sebelum menggunakan panduan ini, pastikan Anda telah mengidentifikasi alasan pembatasan 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 pelambatan sebenarnya adalah masalah yang perlu diselesaikan:

  • Pelambatan sesekali adalah normal dan diharapkan dalam aplikasi DynamoDB yang dioptimalkan dengan baik. Throttling berarti Anda mengkonsumsi 100% dari apa yang telah Anda sediakan. Jika aplikasi Anda menangani pelambatan dengan baik dengan percobaan ulang dan keseluruhan kinerja Anda 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 kritis selesai tepat waktu, lanjutkan dengan opsi mitigasi di bawah ini.

Saat Anda perlu mengatasi masalah pelambatan, pertama-tama tentukan apakah pelambatan Anda disebabkan oleh:

  • Lonjakan lalu lintas sementara: Peningkatan lalu lintas jangka pendek yang melebihi kapasitas yang disediakan tetapi tidak berkelanjutan. Ini membutuhkan strategi yang berbeda dari lalu lintas tinggi yang berkelanjutan.

  • Lalu lintas tinggi berkelanjutan: Beban kerja berkelanjutan yang secara konsisten melebihi kapasitas yang Anda berikan.

Untuk lonjakan lalu lintas, pertimbangkan strategi dari Tangani lonjakan lalu lintas dengan blog kapasitas yang disediakan Amazon DynamoDB di. Sumber daya tambahan

Untuk lalu lintas tinggi yang berkelanjutan, pertimbangkan opsi penyesuaian kapasitas di bawah ini:

TableReadProvisionedThroughputExceeded

Ketika ini terjadi

Tingkat konsumsi baca aplikasi Anda melebihi unit kapasitas baca yang disediakan (RCUs) 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 pembatasan kapasitas baca:

TableWriteProvisionedThroughputExceeded

Ketika ini terjadi

Tingkat konsumsi tulis aplikasi Anda melebihi unit kapasitas tulis (WCUs) 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 pembatasan kapasitas tulis:

IndexReadProvisionedThroughputExceeded

Ketika ini terjadi

Konsumsi baca pada Indeks Sekunder Global (GSI) melebihi unit kapasitas baca (RCUs) yang disediakan GSI. Anda dapat memantau CloudWatch metrik Diagnosis dan pemantauan umum untuk menganalisis peristiwa pelambatan Anda.

Pendekatan resolusi

Pertimbangkan strategi ini untuk mengatasi pembatasan kapasitas baca GSI:

IndexWriteProvisionedThroughputExceeded

Ketika ini terjadi

Pembaruan item di pemicu tabel dasar menulis ke GSI yang melebihi kapasitas tulis yang disediakan GSI. Hal ini menyebabkan pelambatan 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 menyelesaikan pembatasan 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 pembatasan kapasitas yang disediakan:

Prosedur resolusi

Meningkatkan kapasitas throughput tabel

Gunakan prosedur ini saat Auto Scaling tidak diaktifkan dan Anda perlu segera meningkatkan kapasitas.

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

    • Untuk kapasitas baca: Tingkatkan ReadCapacityUnitsparameter, yang menentukan jumlah maksimum pembacaan yang sangat konsisten yang dikonsumsi per detik sebelum DynamoDB melambat permintaan.

    • Untuk kapasitas tulis: Tingkatkan WriteCapacityUnitsparameter, yang menentukan jumlah maksimum penulisan yang dikonsumsi per detik sebelum DynamoDB melambat permintaan.

  2. Pastikan pengaturan kapasitas baru Anda tidak melebihi kuota throughput per tabel dan 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.

Mengonfigurasi tabel Auto Scaling untuk menyesuaikan kapasitas baca atau tulis tabel atau GSI Anda

Konfigurasikan DynamoDB Auto Scaling untuk secara otomatis menyesuaikan kapasitas baca atau tulis berdasarkan pola lalu lintas. Anda dapat mengonfigurasi Auto Scaling secara independen untuk kedua tabel dan GSIs, 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 penyediaan berlebih. Pantau pola penggunaan dan biaya untuk menyeimbangkan kinerja dan efisiensi.

  3. Tetapkan batas kapasitas:

    • Minimum RCUs/WCUs: Mempertahankan kapasitas yang cukup selama periode lalu lintas rendah.

    • Maksimum RCUs/WCUs: Mengakomodasi permintaan lalu lintas puncak dan melindungi terhadap peristiwa penskalaan yang tidak terkendali.

Untuk panduan tentang 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 mendadak, kapasitas burst tabel Anda memberikan perlindungan langsung saat Auto Scaling menyesuaikan. Konfigurasikan pemanfaatan target dengan headroom yang memadai untuk memberikan waktu untuk operasi penskalaan dan untuk mempertahankan kapasitas burst untuk permintaan yang tidak terduga.

Mengoptimalkan pengaturan baca atau tulis tabel atau indeks Anda

Gunakan prosedur ini saat Auto Scaling diaktifkan tetapi throttling masih terjadi. Anda dapat menyetel Auto Scaling secara independen untuk tabel dan indeks sekunder global (GSIs), dengan kontrol terpisah untuk unit kapasitas baca dan tulis.

  • Sesuaikan pemanfaatan target: Pertimbangkan untuk menurunkan pemanfaatan target untuk tabel Anda atau GSIs untuk memicu penskalaan lebih awal sebelum pelambatan terjadi. Pastikan Anda memantau lalu lintas Anda setelah melakukan penyesuaian ini. Lihat Mengonfigurasi 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 Anda yang sebenarnya.

Beralih ke mode kapasitas sesuai permintaan

Untuk informasi umum tentang beralih mode kapasitas, lihatPertimbangan saat mengganti mode kapasitas di DynamoDB. Lihat Service Quotas untuk mempelajari batasan tertentu saat beralih mode.

Meningkatkan kapasitas throughput GSI

Gunakan prosedur ini saat Auto Scaling tidak diaktifkan di GSI Anda atau Anda memerlukan peningkatan kapasitas segera.

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

    • Untuk kapasitas baca: Tingkatkan ReadCapacityUnitsparameter untuk GSI tertentu, yang menentukan jumlah maksimum pembacaan yang dapat dikonsumsi GSI per detik sebelum permintaan pelambatan DynamoDB. Perhatikan bahwa GSIs hanya mendukung pembacaan yang konsisten pada akhirnya.

    • Untuk kapasitas tulis: Tingkatkan WriteCapacityUnitsparameter untuk GSI tertentu, yang menentukan jumlah maksimum penulisan yang dapat dikonsumsi GSI per detik sebelum DynamoDB melambat permintaan.

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

Sumber daya tambahan