我遇到Dynamo問題,讀吞吐量遠低於配置的容量,而圖中沒有任何可見的節流。DynamoDB在沒有任何節流的情況下讀吞吐量低於容量
我的表有類似數據的100GB:
| Partition Key | Sort Key | Value | A | A1 | 1 | A | A2 | 21 | A | A3 | 231 ... | A | A200 | 31 | B | B1 | 5
這種結構不能改變太多,因爲我可以查詢(基於關聯到一個給定鍵的所有值和更復雜的查詢是非常重要的與給定分區鍵關聯的排序鍵)。 。 這使我扼殺了寫入,因爲它必須頻繁地擊中相同的分區,但真正奇怪的是讀取吞吐量。該表具有1000個讀取單元,但最大記錄吞吐量爲每秒600個讀取。這與每秒高達10.000個預配置讀取單位一致。
在客戶端,我每秒發送1000個請求(統一使用速率限制器),理論上讀取吞吐量應該是每秒1000個讀取。即使客戶端的請求數量增加,速率仍然保持不變,並且存在零節制讀取。
客戶端在與Dynamo相同的區域中的EC2 m4.2xlarge實例上運行。我排除了客戶端的一個問題,因爲CPU使用率相當低,並且有足夠的內存可用。
有什麼想法可能導致這種情況?
所以你說你的1000次讀取(/秒)都成功了,但是系統卻把它算爲600? –
@ Michael-sqlbot如果我每秒發送1000次讀數,那麼是的,它們都成功了,但是它的計數是每秒600/500,如果我發送2000然後不,它每秒少於2000次,但是比圖表上顯示的要多。 –