在 Debian(以及大多数 Linux 发行版)中,ulimit 用于限制 shell 及其启动的进程所占用的系统资源。它实际上是对 POSIX getrlimit/setrlimit 的封装。
下面按 ulimit 选项 和 对应内核资源项 详细说明。
ulimit 选项(bash / sh)查看方式:
ulimit -a
| ulimit 选项 | 含义 | 对应资源 |
|---|---|---|
-c |
core 文件大小 (blocks) | RLIMIT_CORE |
-d |
数据段大小 (KB) | RLIMIT_DATA |
-m |
常驻内存(已废弃,通常忽略) | RLIMIT_RSS |
-v |
虚拟内存大小 (KB) | RLIMIT_AS |
-s |
栈大小 (KB) | RLIMIT_STACK |
| ulimit 选项 | 含义 | 对应资源 |
|---|---|---|
-f |
可创建文件大小 (blocks) | RLIMIT_FSIZE |
-n |
打开文件描述符数 | RLIMIT_NOFILE |
-p |
管道大小 (512B) | RLIMIT_PIPE |
| ulimit 选项 | 含义 | 对应资源 |
|---|---|---|
-u |
用户最大进程数 | RLIMIT_NPROC |
-l |
可锁定的内存 (KB) | RLIMIT_MEMLOCK |
-e |
调度优先级 (nice 上限) | RLIMIT_NICE |
-r |
实时优先级上限 | RLIMIT_RTPRIO |
-i |
挂起信号数 | RLIMIT_SIGPENDING |
-q |
POSIX 消息队列大小 (bytes) | RLIMIT_MSGQUEUE |
-x |
最大文件锁数 | RLIMIT_LOCKS(部分内核已弃用) |
| ulimit 选项 | 含义 | 对应资源 |
|---|---|---|
-t |
CPU 时间 (秒) | RLIMIT_CPU |
-m 在 Debian 中通常无效RLIMIT_RSS-v在 Debian 10+(使用 systemd):
systemctl show <service> | grep Limit
常见限制项:
LimitNOFILELimitNPROCLimitMEMLOCKLimitCORE✅ 服务进程请以 systemd 配置为准
/etc/security/limits.conf
/etc/security/limits.d/*.conf
[Service]
LimitNOFILE=65535
Debian 的 ulimit 支持:
CPU、内存、文件、进程数、栈、core、锁内存、实时优先级、信号队列等资源限制
如果你有具体场景(如:高并发、数据库、Docker),我可以给你推荐合理的 ulimit 配置。