温馨提示×

debian ulimit支持哪些参数

小樊
43
2026-09-01 00:35:05
栏目: 智能运维

在 Debian(以及大多数 Linux 发行版)中,ulimit 用于限制 shell 及其启动的进程所占用的系统资源。它分为:

  • 软限制(soft limit):当前生效的限制,进程可自行调整(不超过硬限制)
  • 硬限制(hard limit):上限,普通用户只能调低,不能调高(root 可改)

一、ulimit 常用参数(bash 内置命令)

通过 ulimit -a 可查看当前所有限制。

参数 含义 说明
-a 显示所有限制 最常用
-c core 文件大小 单位:blocks(0 表示不生成 core)
-d 数据段大小 进程数据区上限
-f 文件大小 可创建的最大文件
-l 锁定内存大小 mlock 使用的内存
-m 常驻内存 部分系统已废弃
-n 打开文件描述符数 非常常用
-p 管道大小 单位:512 字节
-s 栈大小 线程栈空间
-t CPU 时间 单位:秒
-u 用户最大进程数 同用户并发进程数
-v 虚拟内存大小 包含 swap
-x 锁文件数 某些系统支持
-e 调度优先级 nice 下限
-i 待处理信号数 实时信号
-q POSIX 消息队列 字节数
-r 实时优先级 实时调度上限

不同 shell(bash / zsh / sh)支持略有差异。


二、查看与设置示例

ulimit -a
ulimit -n 65535
ulimit -u 4096
ulimit -c unlimited

三、永久生效(Debian 推荐方式)

1️⃣ /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535
www-data hard nproc 1024

需配合 PAM:

/etc/pam.d/common-session
session required pam_limits.so

2️⃣ systemd 服务

[Service]
LimitNOFILE=65535
LimitNPROC=4096

四、查看系统级限制

cat /proc/sys/fs/file-max
sysctl fs.file-max

如果你有具体使用场景(如:Web 服务器、数据库、Docker),我可以给你一份推荐的 ulimit 配置

0