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:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengalihkan tabel Anda ke sesuai permintaan jika Anda sering mengalami pelambatan dari lonjakan lalu lintas. Sesuai permintaan menghilangkan masalah penyediaan dan secara otomatis menskalakan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Auto Scaling 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 (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:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengalihkan tabel Anda ke sesuai permintaan jika Anda sering mengalami pelambatan dari lonjakan lalu lintas. Sesuai permintaan menghilangkan masalah penyediaan dan secara otomatis menskalakan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Auto Scaling tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas tulis tabel.
-
Aktifkan Auto Scaling untuk kapasitas tulis di meja 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 (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:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengalihkan tabel dasar ke sesuai permintaan jika Anda sering mengalami pelambatan dari lonjakan lalu lintas. Sesuai permintaan menghilangkan masalah penyediaan dan secara otomatis menskalakan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Auto Scaling tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas baca GSI.
-
Aktifkan Auto Scaling untuk kapasitas baca di GSI Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
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:
-
Beralih ke mode kapasitas sesuai permintaan: Pertimbangkan untuk mengalihkan tabel dasar ke sesuai permintaan jika Anda sering mengalami pelambatan dari lonjakan lalu lintas. Sesuai permintaan menghilangkan masalah penyediaan dan secara otomatis menskalakan beban kerja Anda.
-
Jika tetap menggunakan mode yang disediakan dan Auto Scaling tidak diaktifkan:
-
Pertimbangkan untuk meningkatkan kapasitas tulis GSI.
-
Aktifkan Auto Scaling untuk kapasitas tulis di GSI Anda.
-
-
Jika Auto Scaling diaktifkan (default untuk tabel yang dibuat di konsol):
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:
-
Peristiwa pelambatan:
ReadProvisionedThroughputThrottleEventsdanWriteProvisionedThroughputThrottleEventslacak saat permintaan dibatasi karena alasan ini.ReadThrottleEventsdanWriteThrottleEventsmelacak ketika permintaan baca atau tulis melebihi kapasitas yang disediakan. -
Konsumsi kapasitas:
ConsumedReadCapacityUnitsdanConsumedWriteCapacityUnitsmenunjukkan penggunaan aktual. -
Kapasitas yang disediakan:
ProvisionedReadCapacityUnitsdanProvisionedWriteCapacityUnitsmenunjukkan batas yang dikonfigurasi.
Prosedur resolusi
Meningkatkan kapasitas throughput tabel
Gunakan prosedur ini saat Auto Scaling tidak diaktifkan dan Anda perlu segera meningkatkan kapasitas.
-
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.
-
-
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.
-
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 penyediaan berlebih. Pantau pola penggunaan dan biaya untuk menyeimbangkan kinerja dan efisiensi.
-
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.
-
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.
-
-
Pastikan kapasitas throughput yang disediakan GSI tetap dalam kuota throughput per akun dan per tabel.
Sumber daya tambahan
-
Untuk informasi tentang cara menggunakan ekspresi cron untuk menjadwalkan kebijakan penskalaan, lihat Mengoptimalkan biaya dengan menjadwalkan kapasitas yang disediakan untuk DynamoDB
. -
Untuk informasi langsung tentang memantau dan menganalisis pola pemanfaatan throughput untuk tabel DynamoDB Anda dalam mode kapasitas yang disediakan, lihat Cara mengevaluasi pemanfaatan throughput
untuk tabel Amazon DynamoDB dalam mode yang disediakan.