下面列表为unix/linux 系统单进程资源参数限制,服务器开发中 RLIMIT_CORE 参数用得多(当需要产生core dump时)。
代码片段:
memset(&limit, 0, sizeof(limit));
limit.rlim_cur = RLIM_INFINITY;
limit.rlim_max = RLIM_INFINITY;
if(setrlimit(RLIMIT_CORE, &limit)) {
spd_log(LOG_WARNING, " unable to disable core size res limit %s\n", strerror(errno));
}
if(getrlimit(RLIMIT_CORE, &limit)) {
spd_log(LOG_WARNING, "unable to check rlimit of fd%s\n", strerror(errno));
}
名称 | 意义 |
RLIMIT_AS | 进程总共可用的内存大小的最大值 |
RLIMIT_CORE | core文件的最大尺寸,如果为0说明不能创建core文件 |
RLIMIT_CPU | CPU时间的最大值(单位:秒) |
RLIMIT_DATA | 数据段大小的最大值 |
RLIMIT_FSIZE | 创建文件的大小的最大值 |
RLIMIT_LOCKS | 进程可建立的文件锁的数量的最大值 |
RLIMIT_MEMLOCK | 进程中使用mlock锁定内存的最大尺寸 |
RLIMIT_NOFILE | 进程中文件的打开数量的最大值 |
RLIMIT_NPROC | 每个real user id的子进程数量的最大值 |
RLIMIT_RSS | 最大常驻存储区大小 |
RLIMIT_SBSIZE | socket缓冲的大小的最大值 |
RLIMIT_STACK | 栈的最大尺寸 |
RLIMIT_VMEM | =RLIMIT_AS |
平台支持
限制 | FreeBSD 5.2.1 | Linux 2.4.22 | Mac OS X 10.3 | Solaris 9 |
RLIMIT_AS | N | N | ||
RLIMIT_CORE | ||||
RLIMIT_CPU | ||||
RLIMIT_DATA | ||||
RLIMIT_FSIZE | ||||
RLIMIT_LOCKS | N | N | N | |
RLIMIT_MEMLOCK | N | |||
RLIMIT_NOFILE | ||||
RLIMIT_NPROC | N | |||
RLIMIT_RSS | N | |||
RLIMIT_SBSIZE | N | N | N | |
RLIMIT_STACK | ||||
RLIMIT_VMEM | N | N |