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 系統的資源分配,提高系統的性能和穩定性。