请求多的Linux服务器,如不改最大打开文件数的话,那是一个悲剧~
可以用命令 ulimit -n 看看当前最大可打开文件数 默认是1024
如果加大呢?
临时方法是ulimit -n 8192 这个方法是临时的,也就是重启电脑或者重新登录后又会恢复成1024,且只有 root 用户有权限改。
永久方法:
修改以下两个文件:
1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 10240
* hard nofile 20480
(数目按情况自己改)
2./etc/pam.d/login
vi /etc/pam.d/login
在后面加上
session required pam_limits.so
写程序实现的话:
#include <stdio.h>; #include <unistd.h>; #include <sys/time.h>; #include <sys/types.h>; #include <sys/resource.h>; struct rlimit limit; int main() { getrlimit(RLIMIT_NOFILE,&limit); printf("current file limit is %d\n",limit.rlim_cur); printf("hard file limit is %d\n",limit.rlim_max); limit.rlim_max = 10000; setrlimit(RLIMIT_NOFILE,&limit); printf("hard file limit is %d\n",limit.rlim_max); return 0; }