小编Dan*_*iel的帖子

我该如何设置mongodb集群以同时处理20K +

我的应用程序使用MongoDB作为数据库.我们期待与mongodb集群同时连接20K +.如果我想在20台服务器上运行mongodb并以20种方式对集群进行分片,我该如何配置服务器?

以下是我到目前为止所做的:在我的20台服务器中,我有一台mongos(路由器)在30000端口上运行,在3台服务器上我在端口20000上运行mongo配置服务器.然后在每台服务器上运行3 mongod的例子.其中一个是主要的.换句话说,我有20个mongos,3个mongo-config,60个mongod服务器(20个主要服务器和40个副本服务器).

然后在我的应用程序中(也在每个服务器上运行并连接到localhost:30000 mongos),我设置了mongoOptions,使得connectionsPerHost = 1000.

所有服务开始后10-15分钟,其中一些已不再是ssh-able.这些服务器仍然可以ping通.我怀疑连接太多,导致服务器死机.

我自己的分析如下:每个连接池1K连接意味着每个分片的主要,它将有1K*20(分片)= 20K同时连接打开.一些服务器可能会运行多个主服务器,这将使连接数增加一倍或三倍,达到60K.不知怎的,mongod无法处理这么多连接,虽然我改变了系统设置以允许每个进程打开更多文件.

这是'ulimit -a'显示的内容:

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64000000
max memory size (kbytes, -m) unlimited
open files (-n) 320000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited …
Run Code Online (Sandbox Code Playgroud)

connection cluster-computing mongodb

10
推荐指数
1
解决办法
3720
查看次数

标签 统计

cluster-computing ×1

connection ×1

mongodb ×1