下面列表为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 |
本文详细解析了Unix/Linux系统中用于限制单进程资源使用的参数,特别是RLIMIT_CORE参数在产生coredump时的应用,并介绍了各参数的含义、限制及在不同操作系统中的支持情况。
3930

被折叠的 条评论
为什么被折叠?



