Memecahkan masalah pembatasan untuk mode on-demand - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah pembatasan untuk mode on-demand

Tabel DynamoDB yang menggunakan mode kapasitas sesuai permintaan secara otomatis beradaptasi dengan volume lalu lintas aplikasi Anda. Namun, tabel yang menggunakan mode on-demand mungkin masih melambat. Topik ini membahas cara memecahkan masalah pembatasan umum untuk tabel sesuai permintaan.

Lalu lintas lebih dari dua kali lipat dari puncak sebelumnya

Jika Anda melebihi dua kali lipat puncak lalu lintas sebelumnya dalam waktu 30 menit, maka Anda mungkin mengalami pelambatan. Sebelum Anda melampaui puncak lalu lintas sebelumnya, kami sarankan Anda menyebarkan pertumbuhan lalu lintas Anda setidaknya selama 30 menit. Untuk memantau lalu lintas ke tabel, gunakan ConsumedReadCapacityUnits metrik di Amazon CloudWatch. Untuk informasi selengkapnya, lihat Dimensi dan Metrik DynamoDB.

Untuk tabel sesuai permintaan baru, Anda dapat langsung mengarahkan hingga 4.000 unit permintaan tulis atau 12.000 unit permintaan baca, atau kombinasi linier keduanya.

Untuk tabel yang sudah ada yang Anda alihkan ke mode kapasitas sesuai permintaan, puncak sebelumnya adalah salah satu nilai berikut:

  • Setengah dari throughput yang disediakan sebelumnya untuk tabel

  • Pengaturan untuk tabel yang baru dibuat dengan mode kapasitas sesuai permintaan

Untuk informasi selengkapnya, lihat Throughput awal untuk mode kapasitas sesuai permintaan.

Lalu lintas melebihi maksimum per partisi

Setiap partisi pada tabel dapat melayani hingga 3.000 unit permintaan baca atau 1.000 unit permintaan tulis, atau kombinasi linier keduanya. Jika lalu lintas ke partisi melebihi batas ini, maka partisi mungkin dibatasi. Untuk mengatasi masalah ini, lakukan tindakan berikut:

  1. Gunakan CloudWatch Contributor Insights for DynamoDB untuk mengidentifikasi kunci yang paling sering diakses dan dibatasi dalam tabel Anda.

  2. Acak permintaan ke tabel sehingga permintaan ke tombol partisi panas didistribusikan dari waktu ke waktu. Untuk informasi selengkapnya, lihat Menggunakan pembagian tulis untuk mendistribusikan beban kerja secara merata.

Kunci pintas mungkin menyebabkan masalah pelambatan

Di DynamoDB, kunci partisi yang tidak memiliki kardinalitas tinggi dapat menghasilkan banyak permintaan yang menargetkan hanya beberapa partisi. Jika partisi panas yang dihasilkan melewati batas partisi 3000 RCU atau 1000 WCU per detik, itu dapat mengakibatkan pelambatan.

Alat diagnostik CloudWatch Contributor Insights (CCI) dapat membantu Anda men-debug ini dengan menyediakan grafik CCI untuk setiap pola akses item tabel. Anda dapat terus memantau kunci tabel DynamoDB yang paling sering diakses dan tren lalu lintas lainnya. Untuk informasi selengkapnya tentang CloudWatch Contributor Insights, lihat Contributor Insights for CloudWatch DynamoDB. Untuk informasi selengkapnya, lihat Merancang kunci partisi untuk mendistribusikan beban kerja Anda dan Memilih Kunci Partisi DynamoDB yang Tepat.

Lalu lintas melebihi kuota akun per tabel

Untuk tabel sesuai permintaan, throughput baca tingkat tabel dan kuota throughput tulis tingkat tabel berlaku di tingkat akun. Secara default, throughput tabel memiliki maksimum 40.000 unit permintaan baca dan maksimum 40.000 unit permintaan tulis. Jika lalu lintas ke tabel melebihi kuota akun per tabel untuk throughput, maka tabel mungkin mengalami pelambatan. Untuk mengatasi masalah ini, gunakan konsol Service Quotas untuk meningkatkan throughput baca tingkat tabel dan kuota throughput tulis untuk akun Anda.

Indeks sekunder global tabel Anda dibatasi

Jika tabel DynamoDB Anda memiliki indeks global sekunder yang sedang dibatasi, maka throttling mungkin membuat throttle tekanan balik pada tabel dasar. Untuk informasi selengkapnya, lihat Bagaimana pembatasan pada indeks sekunder global memengaruhi tabel Amazon DynamoDB saya dan. Menggunakan Indeks Sekunder Global di DynamoDB