1.mongodb数据库没有配置连接数,应用异常导致连接数激增,致使MongoDB数据库服务的load的值非常高.我们可以通过配置MongoDB的net.maxincomingConnections 参数来限制mongo的链接数量.
1.首先启动mongo后查看进程.
ps -ef|grep mongo
mongod 9148 1 0 Mar01 ? 00:17:49 /data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf
然后查看该进程的系统连接数限制.
[root@yc-redis1 conf]# cat /proc/9148/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 125877 125877 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 125877 125877 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
查看到系统中的最大连接数是1024.
2.登陆mongo查看mongo服务的当前连接数.
myReplSet:PRIMARY> db.serverStatus().connections
{
"current" : 425,
"available" : 394,
"totalCreated" : 1418,
"active" : 11,
"exhaustIsMaster" : 9,
"exhaustHello" : 0,
"awaitingTopologyChanges" : 131
}
发现当前有425个连接.剩余连接394,一般情况下降连接数限制为系统连接数的 0.8左右即可.为了不至于连接数导致系统崩溃.
3.为了解决系统连接数过多.可以再配置文件中配置net.maxincomingConnections 进行参数的配置.来限制系统最大连接数.
网友评论