日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB 连接数高产生原因及解决

發布時間:2025/5/22 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB 连接数高产生原因及解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? MongoDB Sharding架構下連接數很容易達到很高,這里連接數分為幾個概念: tcp 連接數 netstat可以統計的,一般這個是最高.如果mongod/mongos在同一臺服務器,更明顯。 參考命令:

netstat -ant|awk ‘{print $5}’ |awk -F: ‘{print $1}’|sort |uniq -c|sort -rn mongos/mongod

連接數 mongostat/db.serverStatus()/connPoolStats

可統計。

連接數多高算高呢?

這要看連接到mongodb集群應用服務器實例數、qps(增刪改查)等判斷。 應用服務器單臺,如果qps<100, ,mongos連接數超過2000,肯定是高了。這一般是由于連接池配置不合理導致。 mongod/mongos 默認最大連接數maxConns=20000,2.4版本及以前版本最大不能超過這個數值,2.6版本(開發版2.5版本)取消這個限制。 相關鏈接http://nosqldb.org/topic/50ca8a50ee680fee790001f2

什么原因導致連接數過高

  • 連接池配置不合理 分片情況下,現象是tcp 連接數過高(如達到20000),mongos連接數過高(如超過10000) java為例,connectionsPerHost 不宜配置過大,官方默認值由原來10改成100了,而且有默認5倍的乘數(threadsAllowedToBlockForConnectionMultiplier),一般20~50就可以了。

  • 應用服務器實例過多

我們遇到的場景,當連接到mongos的應用服務器(如Tomcat實例數量)過百,甚至達到近200臺時,tcp連接數超高,達到15000以 上,查看mongod對應端口連接數高達8000多,mongos 2000多。此時ops(query,insert,update,delete)低于200每秒,。定期重啟(如一周一次)mongos可適當緩解該問 題。

  • mongodb本身的原因 表現為mongos連接數不高(如1000+),mongod連接數比較高(如8000+)。

如何解決 總結一下,連接數高分為幾個場景: 應用服務器實例過多,可統計每個實例建立的連接數,適當調低連接池參數。 mongos連接數高,這種就是配置的問題,更改連接池參數。 mongos連接數不高,mongod連接數比較高,如超過5000,如果連接池配置合理還比較高的話,嘗試啟用releaseConnectionsAfterResponse參數(2.2.4版本以上),該參數為 隱藏參數releaseConnectionsAfterResponse

mongos> use admin switched to db admin mongos> db.runCommand({ setParameter : 1, releaseConnectionsAfterResponse : true }) { "was" : false, "ok" : 1 }

或者

shell> mongos --setParameter "releaseConnectionsAfterResponse=true" --configdb ...

該參數注意事項: 寫操作需要立即調用getLastError (w=1,即安全寫模式),w=2(等待從庫寫確認)的時候可能會有些錯誤。 升級過后,或者重啟mongos進程后,需要重新設置該參數,該參數只對單個mongos生效。 啟用releaseConnectionsAfterResponse 參數,tcp 連接數明顯降低到比較穩定數目。幾個小時,tcp連接數從8000多降到4000多,效果不錯。

  • releaseConnectionsAfterResponse 參數原理

通常,對于每個mongos->mongod連接是單獨緩存的,并且該連接不能重復使用,即使該連接是空閑時也是如此,一直到連接關閉連接回 到連接池中才能再使用;releaseConnectionsAfterResponse 參數啟用后,mongos->mongod之間的連接在完成一個讀操作或者安全寫操作后能夠重復使用(把連接放到連接池中而不是緩存,即更早的回歸 到連接池中),releaseConnectionsAfterResponse參數簡單講就是mongos->mongod的連接更早的回到連接 池中,這樣就不會開太多的連接了,從而減少連接數。 Create a new serverParameter for mongos, “releaseConnectionsAfterResponse,” which enables returning ShardConnections from the per-socket pool to the global pool after each read operation. This should reduce the total number of outgoing mongos connections to each shard. the option allows better use of the connection pool, it doesn’t invalidate the connections in the pool. Normally, mongos->mongod connections for insert/update/delete/query are cached individually for each incoming connection, and can’t be re-used until the incoming connection is closed, even if they are idle and there are other active incoming connections. What the releaseConnectionsAfterResponse option does is allow the mongos->mongod connection to be re-used (returned to the pool) after any read op (including getLastError(), so after safe writes as well). It shouldn’t have a significant performance impact - the connection isn’t destroyed, it’s just returned from the incoming connection cache to the shared pool early.

代碼: https://github.com/mongodb/mongo/commit/706459a8af0b278609d70e7122595243df6aeee8 https://github.com/mongodb/mongo/commit/74323d671a216c8c87fcb295ed743f830d5212ee https://github.com/mongodb/mongo/commit/5d5fe49dfb5f452832b9d44fddbfb2a4e8b42f2a

=============== - connPoolTimeout設置

(該參數不在官方沒有) 效果

mongos> db.runCommand({ setParameter : 1, connPoolTimeout : 900 }) { "was" : 1800, "ok" : 1 }

初步測試,效果不明顯。

  • releaseConnections

計劃添加個命令releaseConnections,從mongod運行,減少復制集連接數

轉載于:https://www.cnblogs.com/taozi32/p/5375362.html

總結

以上是生活随笔為你收集整理的MongoDB 连接数高产生原因及解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆av在线看| 国产一区二区91 | 人人澡人人澡人人 | 国产伦精品一区二区三区免.费 | 一个人在线观看www软件 | 国产精品69久久久久孕妇欧美 | 国产这里只有精品 | 亚洲爆乳无码一区二区三区 | 国产鲁鲁视频在线观看特色 | 国产伦精品一区二区三区在线观看 | 懂色av一区二区三区免费 | 九色porny自拍视频 | 久久久夜夜 | 一区二区欧美视频 | 欧美精品一区二区久久婷婷 | 男生插女生的视频 | 日本国产亚洲 | 熟女肥臀白浆大屁股一区二区 | 国产在线拍揄自揄拍 | 久操亚洲 | 制服丝袜在线一区 | 99精品成人| 深爱综合网| 超碰97最新 | 草草影院欧美 | 伊人成年网 | 久久水蜜桃| 一区二区三区精品 | 国产超碰人人爽人人做人人爱 | 91夜色| 亚洲一区二区视频在线 | 亚洲性生活大片 | 中文字幕99 | 97国产视频| 久久99婷婷| 成人久久av | 日韩欧美在线一区二区 | 亚洲一区二区免费在线观看 | 日韩欧美91| 人妻洗澡被强公日日澡 | 奇米成人 | 日本高清视频www夜色资源 | 中文字幕日韩一级 | 国模无码视频一区二区三区 | 国产视频四区 | 毛片免费一区二区三区 | 免费黄色的网站 | 一区二区日韩精品 | 日本视频黄色 | 国产午夜精品一区二区三区 | 毛片手机在线 | 伊人天堂在线 | eeuss一区二区 | 国产va亚洲va在线va | 亚洲精品免费在线 | 欧美丰满美乳xxⅹ高潮www | 国产成a人亚洲精品 | 一起艹在线观看 | 欧美精品一区在线观看 | 99热这里只有精品4 精品国产黄色 | 疯狂做爰的爽文多肉小说王爷 | 好男人在线视频 | 成人一区二区三区四区 | 性史性dvd影片农村毛片 | 天堂av2024| 久久久女人 | 伊人国产一区 | 婷婷伊人综合中文字幕 | 亚洲一区二区三区欧美 | 欧美成人一区二区在线 | 亚洲精品国产精 | 久久特黄视频 | 朝桐光av在线一区二区三区 | 久草国产在线 | 寂寞人妻瑜伽被教练日 | 尤物精品 | 香蕉视频在线观看黄 | 欧美一区二区在线播放 | 日本国产精品一区 | 苏晴忘穿内裤坐公交车被揉到视频 | 一级黄色裸体片 | 精品在线观看免费 | 日韩久久影院 | 91se在线| 国产亚州av | 人人妻人人玩人人澡人人爽 | 麻豆福利在线 | 黄色免费网站在线 | 91丨porny丨对白 | 亚洲av鲁丝一区二区三区 | 中国女人一级片 | xxx69美国 | 久久网一区二区 | 综合久久国产 | 你懂的在线播放 | 夜夜欢天天干 | 亚洲宅男天堂 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 成人黄色动漫在线观看 |