Debian ulimit設置步驟
臨時調整ulimit值適用于快速測試或臨時需求,關閉終端后設置失效。
ulimit -a
(顯示軟/硬限制,如文件描述符數量nofile
、進程數nproc
等)。ulimit -S -n <值>
(例如ulimit -S -n 1024
)。ulimit -H -n <值>
(例如ulimit -H -n 2048
)。ulimit -u <值>
(例如ulimit -u 4096
)。ulimit -v <值>
(如ulimit -v 512000
)。ulimit -t <值>
(如ulimit -t 3600
)。ulimit -s <值>
(如ulimit -s 8192
)。永久設置需修改配置文件,確保重啟或重新登錄后生效。
修改/etc/security/limits.conf
:
用文本編輯器(如sudo nano /etc/security/limits.conf
)打開文件,在末尾添加規則:
* soft nofile 65535 # 所有用戶文件描述符軟限制為65535
* hard nofile 65535 # 所有用戶文件描述符硬限制為65535
* soft nproc 4096 # 所有用戶進程數軟限制為4096
* hard nproc 8192 # 所有用戶進程數硬限制為8192
可替換*
為特定用戶名(如john
)以針對單個用戶設置。
啟用PAM模塊:
編輯/etc/pam.d/common-session
和/etc/pam.d/common-session-noninteractive
文件,在末尾添加:
session required pam_limits.so
確保登錄時會話加載pam_limits.so
模塊,使limits.conf
生效。
.bashrc
或.profile
):nano ~/.bashrc
),在末尾添加:ulimit -n 1024 # 用戶默認文件描述符軟限制
ulimit -Hn 2048 # 用戶默認文件描述符硬限制
保存后執行source ~/.bashrc
使配置立即生效,僅對當前用戶有效。若需為systemd管理的服務(如Apache、Nginx)單獨設置ulimit,需修改服務單元文件。
/etc/systemd/system.conf
和/etc/systemd/user.conf
,設置默認限制:DefaultLimitNOFILE=65535:65535 # 默認文件描述符軟/硬限制
DefaultLimitNPROC=4096:8192 # 默認進程數軟/硬限制
/etc/systemd/system/nginx.service
),在[Service]
段添加:[Service]
ExecStartPre=/bin/ulimit -S -n 65535 # 啟動前設置軟限制
ExecStartPre=/bin/ulimit -H -n 65535 # 啟動前設置硬限制
ExecStart=/usr/sbin/nginx # 原服務啟動命令
LimitNOFILE=65535:65535 # 直接指定限制(推薦)
保存后執行以下命令使配置生效:sudo systemctl daemon-reload # 重新加載systemd配置
sudo systemctl restart nginx # 重啟服務
ulimit -n
(文件描述符)、ulimit -u
(進程數)。cat /proc/sys/fs/file-max
(系統最大文件描述符數)。systemctl show <服務名> | grep LimitNOFILE
(如systemctl show nginx | grep LimitNOFILE
)。注意事項:
nofile
(文件描述符)限制時,需同步修改/etc/sysctl.conf
中的fs.file-max
(系統級最大文件描述符數),并通過sudo sysctl -p
應用,避免系統級限制覆蓋用戶級設置。--ulimit
參數傳遞設置,無法直接修改宿主機ulimit影響容器。