在 CentOS 系统中,ulimit 是一个用于控制用户进程资源使用的命令行工具。通过 ulimit,你可以限制用户可以打开的文件描述符数量、进程数、CPU 时间等。以下是一些常用的 ulimit 资源控制策略:
你可以使用以下命令查看当前用户的资源限制:
ulimit -a
你可以使用 ulimit 命令来设置各种资源限制。以下是一些常见的选项:
-n:设置可以打开的最大文件描述符数量。
ulimit -n 4096
-u:设置可以创建的最大进程数。
ulimit -u 1024
-t:设置CPU时间(秒)的最大值。
ulimit -t 3600
-m:设置内存使用的最大值(KB)。
ulimit -m 512000
-v:设置虚拟内存使用的最大值(KB)。
ulimit -v 1048576
-f:设置单个文件的最大大小(KB)。
ulimit -f 102400
-l:设置核心文件的最大大小(KB)。
ulimit -l 0
-s:设置栈的最大大小(KB)。
ulimit -s 8192
-c:设置核心文件的大小限制(0 表示不生成核心文件)。
ulimit -c unlimited
ulimit 命令设置的资源限制只在当前 shell 会话中有效。如果你想永久设置资源限制,可以编辑 /etc/security/limits.conf 文件。
例如,要为特定用户设置资源限制,可以在 /etc/security/limits.conf 文件中添加以下行:
username soft nofile 4096
username hard nofile 8192
username soft nproc 1024
username hard nproc 2048
除了用户级的资源限制,你还可以通过编辑 /etc/sysctl.conf 文件来设置系统级的资源限制。例如:
设置最大文件描述符数量:
fs.file-max = 100000
设置每个进程的最大文件描述符数量:
fs.nr_open = 1048576
修改 /etc/sysctl.conf 文件后,运行以下命令使更改生效:
sysctl -p
通过这些方法,你可以有效地控制 CentOS 系统中的资源使用,确保系统的稳定性和性能。