ulimit
是一个用于控制 shell 进程资源使用的命令行工具。通过调整 ulimit
的设置,可以优化 Ubuntu 系统的资源分配。以下是一些常见的 ulimit
设置及其优化方法:
首先,你可以查看当前的资源限制:
ulimit -a
文件描述符限制(nofile
)是常见的资源限制之一。增加这个限制可以允许进程打开更多的文件。
ulimit -n 65535
你可以将这个设置永久化,编辑 /etc/security/limits.conf
文件:
* soft nofile 65535
* hard nofile 65535
进程数限制(nproc
)控制一个用户可以同时运行的进程数。
ulimit -u 4096
同样,将这个设置永久化到 /etc/security/limits.conf
文件:
* soft nproc 4096
* hard nproc 4096
内存使用限制(data seg size
)控制进程可以使用的内存量。
ulimit -d unlimited
或者设置一个具体的值:
ulimit -d 4G
堆栈大小限制(stack size
)控制进程可以使用的堆栈大小。
ulimit -s 8192
CPU时间限制(cpu time
)控制进程可以使用的CPU时间。
ulimit -t unlimited
虚拟内存限制(virtual memory
)控制进程可以使用的虚拟内存总量。
ulimit -v unlimited
核心转储文件大小限制(core file size
)控制核心转储文件的大小。
ulimit -c unlimited
打开文件描述符的限制(open files
)控制进程可以同时打开的文件数量。
ulimit -n 65535
为了使这些设置在系统重启后仍然有效,你需要编辑 /etc/security/limits.conf
文件,并确保 PAM(Pluggable Authentication Modules)配置正确。
编辑 /etc/pam.d/common-session
和 /etc/pam.d/common-session-noninteractive
文件,添加以下行:
session required pam_limits.so
通过合理调整 ulimit
设置,可以优化 Ubuntu 系统的资源分配,提高系统的性能和稳定性。