Linux下最大连接数的讲解
1、查看最大连接数
[root@sd-lt-53 ~]# ulimit -n 1024
这里的1024是指当前用户的进程最多允许同时打开1024个文件,其实真正的数量是小于这个的,因为还得去掉每个进程的标准输入,标准输出,标准错误,服务器监听socket,进程间通讯的unix域socket等文件,这样剩下的可用文件数大概会在1014左右。也就是说当前用户的最大打开文件数为1014个,即最大支持1014个并发连接。
2、修改最大连接数
如果我们想支持更大的tcp并发连接,就必须更改对当前用户的进程同时打开的文件数量的软限制(soft limit)和硬限制(hard limit)。
什么是软限制和硬限制呢?
软限制:指Linux在当前系统能够承受的范围内进一步限制用户同时打开的文件数
硬限制:指根据系统硬件资源状况(系统内存)计算出来的系统最多可同时打开的文件数量
所以一般软限制是小于硬限制的
1)通过ulimit修改
[root@devilf ~]# ulimit -n 65535 [root@devilf ~]# ulimit -n 65535
注意:如果修改失败,则需要查看下配置文件
2)修改/etc/security/limits.conf
# End of file root soft nofile 20480 root hard nofile 20480
这里的root代表的是要修改root用户的打开文件数限制,如果想为其他用户设置,则可以写其他用户的名字,想为所有用户设置的话,可以写 " * "
3)修改/etc/pam.d/login文件,在文件中添加如下行
session required /lib/security/pam_limits.so
注:这里是让用户登陆后,告诉系统应该调用pam_limits.so模块来完成设置系统对该用户可使用的各种资源数量的限制
另外需要注意的一个地方是:我们这里需要查看下Linux系统级的最大打开文件数限制:
[root@SDLT-52 ~]# cat /proc/sys/fs/file-max 3253341
如果这里的数和你要设置的最大打开数不符,那么我们可以修改rc.local文件,让每次Linux启动后自动修改
echo "20480" > /proc/sys/fs/file-max