在 CentOS 系统中,ulimit
命令用于控制 shell 进程及其子进程可以使用的系统资源限制。这些限制可以包括文件大小、打开的文件描述符数量、进程数等。以下是一些常用的 ulimit
参数及其含义:
-a
显示当前所有资源限制。
-c <core file size>
设置核心转储文件(core dump)的最大大小(以 blocks 为单位)。如果设置为 0,则禁止生成 core 文件。
-d <data seg size>
设置数据段的最大大小(以 KB 为单位)。
-f <file size>
设置单个文件的最大大小(以 blocks 为单位)。
-H
设置硬限制(hard limit),即不可更改的限制。
-m <memory size>
设置进程可以使用的内存最大值(以 KB 为单位)。
-n <open files>
设置一个进程可以同时打开的最大文件描述符数量。
-p <pipe size>
设置管道缓冲区的最大大小(以 512 字节块为单位)。
-s <stack size>
设置栈的最大大小(以 KB 为单位)。
-u <processes>
设置用户可以同时运行的最大进程数。
-U <soft limit>
设置软限制(soft limit),即可以由用户自行调整的限制。
-v <virtual memory size>
设置虚拟内存的最大大小(以 KB 为单位)。
-x <lock memory size>
设置锁定内存的最大大小(以 KB 为单位)。
查看当前资源限制:
ulimit -a
设置单个文件的最大大小为 100MB:
ulimit -f 209715200
设置进程可以同时打开的最大文件描述符数量为 4096:
ulimit -n 4096
设置用户可以同时运行的最大进程数为 512:
ulimit -u 512
ulimit
设置通常只对当前 shell 会话有效。要永久修改这些设置,可以在用户的 .bashrc
或 .bash_profile
文件中添加相应的 ulimit
命令。通过合理使用 ulimit
命令,可以有效地管理和优化系统资源的使用,防止资源耗尽导致的系统问题。