下面列表為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 |