socket 原理:客户端使用tcp端口连接至服务端,服务端会打开一个句柄文件和客户端保持连接,注意并不是一个连接就会占用一个服务器端口,所以socket连接数跟系统端口最大连接数无关,不然系统防火墙不就没啥用,默认系统每个进程打开的句柄是有限制的,另外整个系统还有一个句柄限制总数,所以socket通讯能支持多大连接数,跟系统句柄文件打开数量限制有关
1、查看局部文件句柄限制
ulimit -n
2、修改限制
vi /etc/security/limits.conf #soft表示警告的限制,hard表示真正限制,nofile表示打开的最大文件数 #默认为 root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 #调整后为 *代表任何用户 root soft nofile 1000000 root hard nofile 1000000 * soft nofile 1000000 * hard nofile 1000000
3、重启后生效
shutdown -r now
4、如果还是有限制,查看全局句柄限制,file-max 表示在linux 中最终所有x线程能够打开的最大文件数
cat /proc/sys/fs/file-max
5、修改最大值
sudo vi /etc/sysctl.conf #在文件的末尾添加 fs.file-max=1000000
6、执行命令让配置生效,执行后在查看 cat /proc/sys/fs/file-max
sudo sysctl -p
标签:netty,限制,socket,句柄,hard,nofile,soft From: https://www.cnblogs.com/binz/p/17637132.html