本章主要講mongoDB文件最大打開數既連接池最大數修改
前言:
mongoDB屬於內存型非關系型數據庫,既所有操作都在內存中執行,當內存無法存放時才會放到磁盤中去操作,所以mongoDB的服務器一般是大內存+SSD的配置。但就性能方面而言,當超過內存值去使用磁盤來做操作時,性能至少會降低為原來性能的1/3。所以在實際的使用和測試過程中需要盡量避免讓mongo使用到磁盤。
調優:
mongoDB是使用文檔方式存儲的,而取決於mongoDB的連接池數量也是這個open files的值,mongoDB的機制是 open files*80% + 16 = 允許最大連接數。
open files默認值是1024,既默認的最大連接數是800多,這在性能測試中非常影響測試,所以需要進行修改。
使用ulimit可以概覽當前的一些默認配置,
ulimit -a
使用
ulimit -n
則可以直接查看open files的值,如下圖

修改該值的方法有兩種,第一種直接使用
ulimit -n 65535
該方法修改的最大文件打開數僅針對當前的session有效,當前用戶退出后重新登錄則會失效。如果當前用戶設置后重啟mongoDB服務器則會永久生效。
第二種修改方式
vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535
修改配置文件后並不會立即生效,需要在新生成的session中才會生效,當前session並不會生效。可以先退出再登陸mongo服務器即可生效。
以上修改后完成以后需要在mongoDB中驗證
./mongo --username xxx --password xxx --port xxx --authenticationDatabase xxx
db.serverStatus().connections

可以看到可用時5.2W+ 說明已經生效
以上就是mongoDB連接池和最大打開文件數的修改