在docker中模拟了数百台客户端连接运行在linux系统之上的mq,结果报连接不上的错误。
定位了好久,请教了一个前辈,在非常偶然的情况下发现了mq使用的句柄数为1021,而linux系统(没有配置过)这个数值是1024,所以连接不上了
使用ulimit -n 65535修改linux系统新开进程打开句柄数的限制,就能继续正常使用了
上图显示了1024available,但是已经使用了1021个
修改ulimit -n之后的效果
修改之后要重启mq。
另外其他的同事在写C的时候也遇到过这个问题,他们的情况是打开句柄之后忘了关闭,然后导致崩溃。