溫馨提示×

Debian ulimit設置步驟

小樊
39
2025-10-05 16:33:16
欄目: 智能運維

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)。
  • 其他資源限制(可選):
    • 內存使用(KB):ulimit -v <值>(如ulimit -v 512000)。
    • CPU時間(秒):ulimit -t <值>(如ulimit -t 3600)。
    • 堆棧大?。↘B):ulimit -s <值>(如ulimit -s 8192)。

二、永久設置(系統級/用戶級)

永久設置需修改配置文件,確保重啟或重新登錄后生效。

1. 系統級全局設置(所有用戶)

  • 修改/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生效。

2. 用戶級個性化設置

  • 修改用戶shell配置文件(如.bashrc.profile):
    用文本編輯器打開用戶家目錄下的配置文件(如nano ~/.bashrc),在末尾添加:
    ulimit -n 1024         # 用戶默認文件描述符軟限制
    ulimit -Hn 2048        # 用戶默認文件描述符硬限制
    
    保存后執行source ~/.bashrc使配置立即生效,僅對當前用戶有效。

三、systemd服務專屬設置

若需為systemd管理的服務(如Apache、Nginx)單獨設置ulimit,需修改服務單元文件。

  • 編輯systemd全局配置(可選):
    修改/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應用,避免系統級限制覆蓋用戶級設置。
  • 容器環境(如Docker)需在容器啟動時通過--ulimit參數傳遞設置,無法直接修改宿主機ulimit影響容器。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女