Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 性能調優基礎策略:ulimit 資源限制優化與永久生效配置

編輯:Linux 教學

ulimit 控制 Shell 及其子進程資源使用上限,合理調優可顯著提升高併發應用(Java、Nginx、數據庫)穩定性。本文涵蓋臨時/永久設置方法、關鍵參數推薦值、配置文件修改位置及 Solaris 平台差異。

核心參數推薦值

三種生效方式

1. 臨時生效(當前 Shell 會話)

ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
...

2. 用戶級永久生效(登錄腳本)

# /etc/profile 或 ~/.bash_profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited

3. 系統級永久生效(PAM limits.conf)

# /etc/security/limits.conf
* soft nofile 4100
* hard nofile 4100
* soft nproc 11000
* hard nproc 11000

需確保 /etc/pam.d/login 和 /etc/pam.d/system-auth 包含:
session required /lib/security/pam_limits.so

SSH 遠程會話生效配置

# /etc/ssh/sshd_config
UseLogin yes
# 重啟 sshd
systemctl restart sshd

Solaris 平台差異

  • 32 位程序受限於標準 I/O 的 256 文件描述符上限
  • 64 位程序可突破至 20 億
  • 編譯 64 位程序:gcc -m64
  • /etc/system 設置:
    set rlim_fd_max = 65535
    set rlim_fd_cur = 65535

驗證命令

ulimit -a          # 顯示所有限制
ulimit -n          # 顯示文件描述符限制
cat /proc/PID/limits  # 查看進程實際限制
Copyright © Windows教程網 All Rights Reserved
參數命令推薦值說明
最大進程數ulimit -u10000+防止 fork 炸彈、支持高併發
最大文件描述符ulimit -n4096~65535關鍵:默認 1024 嚴重不足
數據段大小ulimit -dunlimited
最大內存ulimit -munlimited
棧大小ulimit -sunlimited防止棧溢出
CPU 時間ulimit -tunlimited
虛擬內存ulimit -vunlimited