温馨提示×

centos ulimit支持哪些参数

小樊
44
2026-09-30 05:44:19
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,ulimit 用于控制 shell 进程及其子进程 的系统资源限制。它本质上是 getrlimit / setrlimit 系统调用的前端。

下面按常用参数和完整参数两部分说明。


一、ulimit 常用参数(最常用)

参数 含义 说明
-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 完整参数(POSIX / Linux)

ulimit 支持的参数取决于 shell(通常是 bash) 和 内核版本。

1️⃣ 资源类参数(核心)

参数 对应资源 说明
-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 文件锁数量

2️⃣ 查看 / 设置模式

ulimit -Ha   # 硬限制(hard)
ulimit -Sa   # 软限制(soft)
  • soft limit:用户可自行修改(≤ hard)
  • hard limit:root 才能修改

三、CentOS 中永久配置 ulimit

✅ 方法 1:/etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

✅ 方法 2:systemd 服务

[Service]
LimitNOFILE=65535
LimitNPROC=4096

四、常见注意点(CentOS 特有)

  1. CentOS 7+ 使用 systemd
    • limits.conf 对 systemd 服务不一定生效
  2. nproc 限制
    • 默认可能限制每个用户进程数
  3. nofile 很关键
    • 高并发服务器必须调大

五、一句话总结

CentOS 的 ulimit 支持 核心资源限制(文件、进程、内存、CPU、信号等),常用的是 -n、-u、-c,生产环境建议通过 limits.conf 或 systemd 配置。

如果你需要:

  • CentOS 7 / 8 区别
  • Oracle / MySQL / Nginx 推荐值
  • ulimit 不生效排查

可以继续问我。

0 踩