91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mongo中MongoDB WiredTiger引擎調優技巧有哪些

發布時間:2021-11-11 13:51:53 來源:億速云 閱讀:314 作者:iii 欄目:關系型數據庫

這篇文章主要講解了“Mongo中MongoDB WiredTiger引擎調優技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Mongo中MongoDB WiredTiger引擎調優技巧有哪些”吧!

MongoDB3.0開始引入可插拔存儲引擎的概念。當前,有不少存儲引擎可供選擇:MMAPV1WiredTigerMongoRocksTokuSE等等。每個存儲引擎都有自己的優勢,你需要根據性能要求及應用特征挑選最適合的一個。

3.2.x開始,WiredTiger成為默認的存儲引擎。最為MongoDB目前最流行的存儲引擎,WiredTiger與原先的MMAPV1相比有以下優勢:

  • 性能&并發:在大多數工作負載下,WiredTiger的性能要比MMAPV1高很多。WiredTiger引擎為現代多核系統量身定制,更好地發揮多核系統的處理能力。MMAPV1引擎使用表級鎖,因此,當某個單表上有并發的操作,吞吐將受到限制。WiredTiger使用文檔級鎖,由此帶來并發及吞吐的提高。對于典型的應用,切到WiredTiger引擎,可帶來5-10倍的性能提升。

  • 壓縮&加密MMAPV1引擎要求數據在內存和在磁盤的形式一致(map磁盤內存映射)。因此,它并不支持壓縮和加密。WiredTiger并沒有這層限制,可以更好地支持。

  • 索引前綴壓縮WiredTiger存儲索引時使用前綴壓縮——相同的前綴只存一次。由此帶來的效果是:索引更小了,對物理內存使用也更少了。

接下來,我會展示幾個用來調優WiredTiger引擎性能的關鍵參數。

調優Cache Size

WiredTiger最重要的調優參數就是cache規模。默認,MongoDB3.x開始會保留可用物理內存的50%(3.2是60%)作為數據cache。雖然,默認的設置可以應對大部分的應用,通過調節為特定應用找到最佳配置值還是非常值得的。cache的規模必須足夠大,以便保存應用整個工作集(working set)。

除了這個cacheMongoDB在做諸如聚合、排序、連接管理等操作時需要額外的內存。因此,必須確保有足夠的內存可供使用,否則,MongoDB進程有被OOM killer殺死的風險。

調節這個參數,首先要理解在默認配置下,cache的使用情況。運行以下命令,可以獲得cache統計:

db.serverStatus().wiredTiger.cache

命令輸出結果例子如下:

{   "tracked dirty bytes in the cache" : 409861,   "tracked bytes belonging to internal pages in the cache" : 738956332,   "bytes currently in the cache" : 25769360777,   "tracked bytes belonging to leaf pages in the cache" : 31473298388,   "maximum bytes configured" : 32212254720,   "tracked bytes belonging to overflow pages in the cache" : 0,   "bytes read into cache" : 29628550664,   "bytes written from cache" : 34634778285,   "pages evicted by application threads" : 0,   "checkpoint blocked page eviction" : 102,   "unmodified pages evicted" : 333277,   "page split during eviction deepened the tree" : 0,   "modified pages evicted" : 437117,   "pages selected for eviction unable to be evicted" : 44825,   "pages evicted because they exceeded the in-memory maximum" : 74,   "pages evicted because they had chains of deleted items" : 33725,   "failed eviction of pages that exceeded the in-memory maximum" : 1518,   "hazard pointer blocked page eviction" : 34814,   "internal pages evicted" : 21623,   "maximum page size at eviction" : 10486876,   "eviction server candidate queue empty when topping up" : 8235,   "eviction server candidate queue not empty when topping up" : 3020,   "eviction server evicting pages" : 191708,   "eviction server populating queue, but not evicting pages" : 2996,   "eviction server unable to reach eviction goal" : 0,   "pages split during eviction" : 8821,   "pages walked for eviction" : 157970002,   "eviction worker thread evicting pages" : 563015,   "in-memory page splits" : 52,   "percentage overhead" : 8,   "tracked dirty pages in the cache" : 9,   "pages currently held in the cache" : 1499798,   "pages read into cache" : 2260232,   "pages written from cache" : 3018846}

第一個要關注的數值試,cache中臟數據的百分比。如果這個百分比比較高,那么調大cache規模很有可能可以提升性能。如果應用是重讀的,可再關注bytes read into cache這個指標。如果這個指標比較高,那么調大cache規模很有可能可以提升讀性能。

調節cache規模不一定非得重啟服務,我們可以動態調整:

db.adminCommand( { "setParameter": 1, "wiredTigerEngineRuntimeConfig": "cache_size=xxG"})

如果你想讓調整在重啟后也有效,那么你需要將配置文件也相應調整一下。

控制Read/Write Tickets

WiredTiger使用tickets來控制可以同時被存儲引擎處理的讀/寫操作數。默認值是128,在大部分情況下表現良好。如果這個值經常掉到0,所有后續操作將會被排隊等待。例如,觀察到讀tickets下降,系統可能有大量長耗時的操作(未索引操作)。如果你想找出有哪些慢操作,可以用一些第三方工具。你可以根據系統需要和性能影響上下調節tickets

運行以下命令可以確認tickets的使用情況:

db.serverStatus().wiredTiger.concurrentTransactions

下面是一個輸出例子:

{   "write" : {      "out" : 0,      "available" : 128,      "totalTickets" : 128
   },   "read" : {      "out" : 3,      "available" : 128,      "totalTickets" : 128
   }
}

同樣,可以動態調節tickets

db.adminCommand( { setParameter: 1, wiredTigerConcurrentReadTransactions: xx } )db.adminCommand( { setParameter: 1, wiredTigerConcurrentWriteTransactions: xx } )

一旦做出調整,注意要觀察系統的性能監控確保影響是符合預期的。

感謝各位的閱讀,以上就是“Mongo中MongoDB WiredTiger引擎調優技巧有哪些”的內容了,經過本文的學習后,相信大家對Mongo中MongoDB WiredTiger引擎調優技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无棣县| 公主岭市| 修武县| 阿巴嘎旗| 古田县| 曲阳县| 甘德县| 临高县| 平塘县| 敦化市| 喀喇| 凉城县| 尼玛县| 大城县| 随州市| 从江县| 晋中市| 绥芬河市| 中方县| 越西县| 堆龙德庆县| 芷江| 乡宁县| 阳原县| 内丘县| 陇南市| 绵阳市| 新兴县| 平潭县| 庄河市| 临夏县| 璧山县| 兴国县| 和平区| 宜宾县| 鞍山市| 吉隆县| 伊金霍洛旗| 湟源县| 乌兰察布市| 西林县|