在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
查看当前系统打开的文件数量
lsof | wc -l
watch "lsof | wc -l"
查看某一进程的打开文件数量
lsof -p pid | wc -l
lsof -p 1234 | wc -l
注意1:一定要用lsof -p pid去查询,如果用lsof |grep pid | wc -l.不仅会超级慢,还会发现数值要大很多,这个大的值不是打开的文件数。
eg:
lsof具体详解,可参考如下:https://www.cnblogs.com/sparkbj/p/7161669.html
注意2:netsat查看端口号然后wc -l,统计的也不是打开的文件数