在 CentOS 系統中,你可以使用 ulimit 命令來限制進程的內存使用量。ulimit 是一個 shell 內置命令,用于控制 shell 進程及其子進程的資源限制。以下是如何使用 ulimit 來限制進程內存使用量的步驟:
臨時限制: 你可以在當前 shell 會話中臨時設置內存限制。例如,要限制內存使用量為 512 MB,可以使用以下命令:
ulimit -v 524288
這里的 524288 是 512 MB 的千字節數(因為 1 MB = 1024 KB,1 KB = 1024 字節)。
永久限制:
如果你想讓這個限制在系統重啟后仍然有效,可以將其添加到用戶的 shell 配置文件中,例如 .bashrc 或 .bash_profile。
打開文件:
nano ~/.bashrc
然后在文件末尾添加以下行:
ulimit -v 524288
保存并關閉文件,然后重新加載配置文件:
source ~/.bashrc
系統級限制:
如果你想對所有用戶設置內存限制,可以編輯 /etc/security/limits.conf 文件。
打開文件:
sudo nano /etc/security/limits.conf
添加以下行來限制特定用戶的內存使用量:
username soft as 524288
username hard as 524288
這里的 username 是你要限制的用戶名,as 表示地址空間(內存)限制。
PAM 配置:
如果你想讓這些限制對所有新啟動的會話生效,可以編輯 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive 文件。
打開文件:
sudo nano /etc/pam.d/common-session
添加以下行:
session required pam_limits.so
然后打開 /etc/pam.d/common-session-noninteractive 文件并添加相同的行:
sudo nano /etc/pam.d/common-session-noninteractive
添加相同的行:
session required pam_limits.so
通過這些步驟,你可以有效地限制 CentOS 系統中進程的內存使用量。