通過 ulimit
命令可以優化 CentOS 服務器的性能,主要涉及文件描述符限制、內存限制和 CPU 時間限制等方面的調整。以下是具體的優化步驟和建議:
ulimit
設置使用以下命令查看當前系統的所有資源限制:
ulimit -a
可以通過 ulimit
命令臨時調整當前會話的最大進程數或最大打開文件數。例如:
ulimit -n 65535 # 設置最大打開文件數為 65535
ulimit -u 4096 # 設置最大進程數為 4096
為了使設置永久生效,需要修改 /etc/security/limits.conf
文件。例如,設置所有用戶的最大文件打開數為 65535:
* soft nofile 65535
* hard nofile 65535
除了使用 ulimit
命令,還可以通過修改內核參數來優化系統性能。例如,修改 /etc/sysctl.conf
文件來調整 TCP 參數:
net.ipv4.tcp_tw_reuse = 1 # 允許將 TIME-WAIT sockets 重新用于新的 TCP 連接
net.ipv4.tcp_tw_recycle = 1 # 開啟 TCP 連接中 TIME-WAIT sockets 的快速回收
net.ipv4.tcp_fin_timeout = 30 # 表示如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT-2 狀態的時間
net.ipv4.tcp_keepalive_time = 1200 # 表示當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度
執行以下命令使內核配置立馬生效:
/sbin/sysctl -p
禁用 SELinux:如果不需要 SELinux 的強制訪問控制,可以將其禁用以提高系統性能。
sudo vi /etc/selinux/config
SELINUX=disabled
sudo reboot
sudo setenforce 0
精簡開機啟動服務:只保留必須的服務以節省系統資源。
systemctl list-unit-files --type=service --state=enabled
sudo systemctl disable service_name
調整最大文件打開數:修改 /etc/security/limits.conf
文件以提高 Squid 等服務器的性能。
* soft nofile 60000
* hard nofile 65535
設置 CPU 時間限制:如果需要限制進程的 CPU 使用時間,可以使用 ulimit -t
命令。
ulimit -t 3600 # 設置 CPU 時間限制為 1 小時
通過合理調整 ulimit
設置和內核參數,可以顯著提高 CentOS 服務器的性能和穩定性。需要注意的是,調整 ulimit
值時應根據實際業務需求和服務器資源進行測試,避免設置過高導致資源浪費或系統不穩定。