发布于2026-07-28 阅读(0)
扫一扫,手机访问
ulimit 这个工具,说大不大,说小不小,但它确实是防止系统过载的“隐形守门人”。简单来说,它用来控制 shell 进程及其子进程的资源使用。通过合理设置 ulimit 参数,就能给系统装上一道“安全阀”——避免某个进程无节制地吃掉内存、磁盘或 CPU 时间,导致整个系统卡死甚至崩溃。

那么,具体该怎么操作?下面几个步骤,可以当作一份“防过载手册”来用。
首先,打开终端,先看看当前系统的资源限制长什么样:
ulimit -a
这会输出一大堆参数,别慌,我们关注几个关键项就行。下面列出的是最常用的限制项,每个都配了示例值——不过这些值只是参考,实际要调大调小,得根据你的硬件和业务场景来定。
core file size(核心转储文件大小):限制核心转储文件的大小,防止磁盘空间被意外填满。比如设成 100MB:
ulimit -c 100000
data seg size(数据段大小):限制进程能使用的数据段大小。比如 512MB:
ulimit -d 536870912
file size(文件大小):限制进程能创建的最大文件。比如 1GB:
ulimit -f 1073741824
max memory size(最大内存大小):限制进程可使用的内存。比如 2GB:
ulimit -m 2147483648
open files(打开文件数):限制进程能同时打开的文件数量。很多高并发服务都会遇到这个限制,比如调到 1024:
ulimit -n 1024
stack size(堆栈大小):限制进程的堆栈大小。比如 64MB:
ulimit -s 67108864
cpu time(CPU 时间):限制进程能使用的 CPU 时间(秒)。比如 1 小时:
ulimit -t 3600
virtual memory(虚拟内存):限制进程能使用的虚拟内存。比如 4GB:
ulimit -v 4294967296
这些设置只在当前 shell 会话中生效。要想让它们“永久化”,需要把对应的命令追加到系统配置文件中。最常用的做法是写入 /etc/profile(全局生效)或 ~/.bashrc(当前用户生效),具体取决于你用的 shell。注意,修改后要重新登录或执行 source 才能加载。
需要警惕的是:以上数值只是示例,不同场景下差距很大。比如一个数据库服务器可能需要更大的内存限制,而一个 Web 服务器则可能更关注打开文件数。在动手改之前,务必搞清楚每个参数的实际含义,否则设得太低可能让正常服务跑不起来,设得太高又等于没设。保持一个合理的平衡,才是 ulimit 的用武之地。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8