MongoDB相關設置

   1  最大連接數設置

調整辦法是在/etc/rc.local中添加配置項:
          文件限制
                 ulimit -n 2048
          MongoDB啓動
                 ./mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend --maxConns=2048 --fork
         連接mongodb

              [root@localhost bin]# ./mongo 127.0.0.1:27017
               > db.serverStatus().connections

               { "current" : 634, "available" : 1414 }
注:
   每個連接需要使用10M的內存,內核中stack size可以調整連接數佔用內存大小。
   每1024 ulimit可以提供819 個maxConns.
   maxConns允許的最大值是20000.

    2   mongodb刪除集合後磁盤空間不釋放,只有用db.repairDatabase()去修復才能釋放。

   3  MongoDB配置參數詳解:
#對mongo實例來說,每個host允許鏈接的最大鏈接數,這些鏈接空閒時會放入池中,如果鏈接被耗盡,任何請求鏈接的操作會被阻塞等待鏈接可用,推薦配置10
connectionsPerHost=10
#當鏈接空閒時,空閒線程池中最大鏈接數
minPoolsSize=5
#此參數跟connectionsPerHost的乘機爲一個線程變爲可用的最大阻塞數,超過此乘機數之後的所有線程將及時獲取一個異常.eg.connectionsPerHost=10 and threadsAllowedToBlockForConnectionMultiplier=5,最多50個線程等級一個鏈接,推薦配置爲5
threadsAllowedToBlockForConnectionMultiplier=5
#一個線程等待鏈接可用的最大等待毫秒數,0表示不等待,負數表示等待時間不確定,推薦配置120000
maxWaitTime=120000
#鏈接超時的毫秒數,0表示不超時,此參數只用在新建一個新鏈接時,推薦配置10,000.
connectTimeout=10000
#此參數表示socket I/O讀寫超時時間,推薦爲不超時,即 0    Socket.setSoTimeout(int)
socketTimeout=0
#該標誌用於控制socket保持活動的功能,通過防火牆保持連接活着
socketKeepAlive=false
#true:假如鏈接不能建立時,驅動將重試相同的server,有最大的重試次數,默認爲15次,這樣可以避免一些server因爲一些阻塞操作零時down而驅動拋出異常,這個對平滑過度到一個新的master,也是很有用的,注意:當集羣爲複製集時,驅動將在這段時間裏,嘗試鏈接到舊的master上,而不會馬上鍊接到新master上
#false 當在進行socket讀寫時,不會阻止異常拋出,驅動已經有自動重建破壞鏈接和重試讀操作. 推薦配置false
autoConnectRetry=false
#重新打開鏈接到相同server的最大毫秒數,推薦配置爲0,如果 autoConnectRetry=true,表示時間爲15s
#com.jd.mongodbclient2.mongo.JDClientMongo.maxAutoConnectRetryTime=false
#表示當沒有手動關閉遊標時,是否有一個自動釋放遊標對象的方法,如果你總是很小心的關閉遊標,則可以將其設爲false 推薦配置true

#com.jd.mongodbclient2.mongo.JDClientMongo.cursorFinalizerEnabled=true

#安全模式

com.jd.mongodbclient2.driver.MongoDBDriver.safe=true

#爲true表示讀寫分離

com.jd.mongodbclient2.driver.MongoDBDriver.slaveOk=false

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章