高并发下多台mongos的连线
我的使用场景是高并发连接多台 mongos, , 当把连线仅指定单一台 mongos 没问题 (app1, app3 to mongos1; app2, app4 to mongos2) 但 当把全部的 mongos 都列在连线字符串上时, 也可以操作 mongodb. 只是当完成几万个工作后, 突然两台 mongos 都不工作了. 正在连线中的mongo shell 下指令都会报错, 显示无法连接, 或是被拒绝连接等信息, 而此时 mongos proess 还是活着.
怀疑过连线满, 用 ulimi -n 增加了 open file 上限, 也在 mongos config 加上 net.maxIncomingConnections 2000. 但启 mongos 后, mongo shell 连入, 在重复大量插入 (request 经过中间件), 以 db.serverStatus().connections 看到 available 还是 818, 而进行相同大量插入时, current 会一值增加, 直到约 300 左右, 突然又死了. 看起来是连线数更改可能未发生效果; 但连线也还没到上限数就拒绝任何 client 了.
求解 !!