在 CentOS(以及其他 Linux 发行版)中,ulimit 用于控制 shell 进程及其子进程 的系统资源限制。它本质上是 getrlimit / setrlimit 系统调用的前端。
下面按常用参数和完整参数两部分说明。
| 参数 | 含义 | 说明 |
|---|---|---|
-a |
查看所有限制 | 最常用 |
-u |
用户最大进程数 | max user processes |
-n |
文件描述符数量 | open files |
-c |
core 文件大小 | 单位:blocks |
-f |
文件最大大小 | 单位:blocks |
-v |
虚拟内存大小 | 单位:KB |
-m |
常驻内存 | 很多系统已忽略 |
-s |
栈大小 | 单位:KB |
-t |
CPU 时间 | 单位:秒 |
-d |
数据段大小 | 单位:KB |
示例:
ulimit -a
ulimit -n 65535
ulimit -u 4096
ulimit 支持的参数取决于 shell(通常是 bash) 和 内核版本。
| 参数 | 对应资源 | 说明 |
|---|---|---|
-c |
core file size | core dump 大小 |
-d |
data seg size | 数据段 |
-e |
scheduling priority | 调度优先级(nice) |
-f |
file size | 可创建文件大小 |
-i |
pending signals | 待处理信号数 |
-l |
locked memory | 可锁内存 |
-m |
resident set size | 常驻内存(常忽略) |
-n |
open files | 文件描述符 |
-p |
pipe size | 管道大小(通常不可改) |
-q |
POSIX message queues | 消息队列 |
-r |
real-time priority | 实时优先级 |
-s |
stack size | 栈大小 |
-t |
cpu time | CPU 时间 |
-u |
max user processes | 用户进程数 |
-v |
virtual memory | 虚拟内存 |
-x |
file locks | 文件锁数量 |
ulimit -Ha # 硬限制(hard)
ulimit -Sa # 软限制(soft)
/etc/security/limits.conf* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
[Service]
LimitNOFILE=65535
LimitNPROC=4096
limits.conf 对 systemd 服务不一定生效CentOS 的
ulimit支持 核心资源限制(文件、进程、内存、CPU、信号等),常用的是-n、-u、-c,生产环境建议通过limits.conf或 systemd 配置。
如果你需要:
可以继续问我。