想要测试select, poll, epoll函数可支持的最大连接数,发现都是1024,查了资料发现linux有对于程序所打开的最大文件数限制。可用ulimit -n查看。如果要查看所以限制值,可用ulimit -a。较为常用的限制值:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
想要增大ulimit -n为10240,一般用户直接输入ulimit -n 10240会显示无权限,ulimit也不能用sudo。
可用sudo vim /etc/security/limits.conf加上下面两句
* soft nofile 10240
* hard nofile 20480
再sudo vim /etc/pam.d/login加上
session required /lib/security/pam_limits.so
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
重连后执行ulimit -n即可发现变成10240了。
参考:blog.sina.com.cn/s/blog_5f66526e0100xl5t.html