在开发环境下,由于对各种资源的使用不多,我们在调试或运行的时候也不会出现问题,而在正式环境下,由于用户量比较大,资源占用较多,会出现很多意外的问题。比如连接数大,TCP连接不上,数据库连接被占完等。下面把我遇到的问题总结一下,希望对遇到类似问题的朋友有所帮助。
一,Linux最大连接数的限制
在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,
最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
可使用ulimit -n命令查看系统允许当前用户进程打开的文件数限制