Mongodb
如何為wiredTiger concurrentTransactions 設置正確的值
我在具有 7 個處理器和 15 Gb 的伺服器中有一個實例。
wiredTigerConcurrentReadTransactions
和的值預設為wiredTigerConcurrentWriteTransactions
128。但是值是預設值,如何計算理想值
ConcurrentTransactions
?$$ Reference $$ https://www.datadoghq.com/blog/monitoring-mongodb-performance-metrics-wiredtiger/
https://docs.mongodb.com/manual/reference/parameters/#param.wiredTigerConcurrentReadTransactions
讀/寫票據值設置為 128,以防止並發請求壓倒 WiredTiger。選擇它們是為了迎合典型的伺服器硬體。通常不建議更改這些值。
如果您看到停頓並觀察到讀/寫票證已用完,則極有可能這只是一種症狀。失速的原因通常在其他地方。
幾個例子:
- 慢速磁碟會導致寫入請求堆積,因為它們的服務速度不夠快。如果由於儲存引擎似乎一直在達到票數限製而增加了讀/寫票證,那麼實際上會發生的是您對磁碟施加了更大的壓力,這將導致進一步的延遲。在這種情況下,正確的補救措施是提供更快的磁碟。
- 您在 AWS 中有一個部署。在一天的大部分時間裡,讀寫進展順利。寫入負載有所增加,但係統可以很好地處理它。突然,事情開始停滯不前,您會看到讀/寫票證顯然無緣無故地用盡了。在大多數這樣的情況下,根本原因是因為磁碟已通過其分配的突發 IOPS 並受到 AWS 的限制。可以想像,在這種情況下增加讀/寫票號並沒有幫助,而且會使事情變得更糟。
總之,您實際上並不需要調整讀/寫票證。如果您發現它經常耗盡,請檢查工作堆積並等待儲存引擎的可能原因。