免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Mongo中MongoDBWiredTiger引擎調優技巧有哪些-創新互聯

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

成都創新互聯IDC提供業務:成都電信服務器托管,成都服務器租用,成都電信服務器托管,重慶服務器租用等四川省內主機托管與主機租用業務;數據中心含:雙線機房,BGP機房,電信機房,移動機房,聯通機房。

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引擎調優技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

當前名稱:Mongo中MongoDBWiredTiger引擎調優技巧有哪些-創新互聯
分享URL:http://m.newbst.com/article34/dpidse.html

成都網站建設公司_創新互聯,為您提供外貿網站建設服務器托管品牌網站制作網站導航虛擬主機自適應網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設