CentOS 7 中 ulimit 的配置与优化

什么是 ulimit?
ulimit 是 Linux 系统中的一个命令,用于限制进程可使用的资源,这些资源包括打开文件描述符的数量、可分配的内存大小、可创建的进程数等,在 CentOS 7 中,ulimit 的配置对于优化系统性能和安全性具有重要意义。
ulimit 的基本使用
查看当前 ulimit 设置
要查看当前系统的 ulimit 设置,可以使用以下命令:
ulimit -a
输出结果如下:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited 修改 ulimit 设置

要修改 ulimit 设置,可以使用以下命令:
ulimit -[option] [limit]
option 可以是以下选项之一:
-a:显示或修改所有资源限制。-c:设置 core 文件的大小。-d:设置数据段的大小。-e:设置调度优先级。-f:设置文件大小。-i:设置挂起的信号数。-l:设置最大锁定内存。-m:设置最大内存大小。-n:设置打开文件描述符的数量。-p:设置管道大小。-q:设置 POSIX 消息队列的大小。-r:设置实时优先级。-s:设置堆栈大小。-t:设置 CPU 时间。-u:设置最大用户进程数。-v:设置虚拟内存大小。-x:设置文件锁。
要设置打开文件描述符的数量为 4096,可以使用以下命令:
ulimit -n 4096
ulimit 的配置文件
CentOS 7 中,ulimit 的配置文件位于 /etc/security/limits.conf,该文件中可以设置全局的 ulimit 参数,以下是一个示例配置:
* soft nofile 1024
* hard nofile 4096
root soft nofile 65536
root hard nofile 65536 这里设置了所有用户默认的文件描述符限制为 1024(软限制)和 4096(硬限制),而 root 用户的限制为 65536。
FAQs

问题:如何查看当前进程的 ulimit 设置?
解答:可以使用以下命令查看当前进程的 ulimit 设置:
ulimit -p
问题:如何将 ulimit 设置应用于所有用户?
解答:将 ulimit 的配置写入 /etc/security/limits.conf 文件中,并确保该文件具有正确的权限(通常是 644),这样,所有用户在登录系统时都会应用这些设置。

