一、代码修改进程的文件描述符限制数,仅当前进程生效
#include <sys/resource.h>
/*
* 修改进程文件描述符限制数
*/
bool reset_fd_limit(int32_t fdNum){
bool bRet = false;
do {
struct rlimit rl;
if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
logerror<<"getrlimit failed."<< LOGEND;
break;
}
rl.rlim_cur = fdNum;
rl.rlim_max = fdNum;
if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
logerror << "setrlimit failed." << LOGEND;
break;
}
loginfo << "setrlimit succeed, fdNum = " << fdNum << LOGEND;
bRet = true;
}while (0);
return bRet;
}
二、直接修改系统的文件描述符限制数,对操作系统所有程序生效
#使用root用户操作
vim /etc/profile
#文件末尾增加两行
ulimit -c unlimited
ulimit -n 655350
#保存退出后使之生效
source /etc/profile
#检测是否生效
ulimit -a | grep open
open files (-n) 655350