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

Linux 伺服器效能調優 20 大實戰技巧:從核心參數到架構優化

編輯:關於伺服器

前言:Linux 伺服器調優核心哲學

Linux 伺服器預設無 GUI、命令列介面、設計目標:**長時間高負載穩定運行**,而非互動回應速度。調優核心:**減少不必要的資源消耗、消除瓶頸、提升吞吐量、增強可用性**。

20 大調優技巧分類速覽

類別技巧編號關鍵字
核心/IO1, 9電梯演算法、核心參數
服務/進程2, 3, 4, 5禁用守護進程、關閉 GUI、清理模組、禁用控制面板
網路/協定6, 10DNS 快取、TCP 優化
安全/加密7, 8GPG AES256、遠端備份安全
檔案系統/儲存11-20 (續)掛載選項、RAID、LVM、SSD、備份

技巧 1-10 詳細解析 (本文涵蓋範圍)

1. 調整核心 I/O 電梯演算法 (I/O Scheduler)

  • 四大演算法:`noop` (虛擬化/SSD)、`deadline` (資料庫/高 IOPS)、`cfq` (桌面/多媒體)、`bfq` (低延遲互動)
  • 查看目前:`cat /sys/block/sda/queue/scheduler`
  • 永久生效:`grub` 參數 `elevator=deadline` 或 `udev` 規則依裝置設定
  • 虛擬化客體 + SSD/快閃陣列 → **`noop` 或 `none` (多隊列裝置)** 最佳

2. 禁用不必要的守護進程 (Daemon)

工具:`systemctl disable ` / `chkconfig off`。效益:釋放 50–200MB 記憶體、減少攻擊面、加快開機。

3. 關閉 GUI (Runlevel 3)

  • `/etc/inittab`:`id:3:initdefault:` (Systemd: `systemctl set-default multi-user.target`)
  • 需時:`startx` 臨時進入圖形介面
  • 省記憶體 200–500MB、CPU 週期、顯示驅動複雜度

4. 清理不需要的模組/功能 (Apache/Nginx/PHP/資料庫)

  • Apache:`LoadModule` 逐行審查,註解掉 `mod_frontpage`、`mod_cgi` (若不用)、`mod_dav` 等
  • PHP:`php.ini` 禁用 `expose_php`、無用擴充套件 (`pdo_oci`, `enchant` 等)
  • MySQL:`skip-name-resolve`、禁用未用儲存引擎 (`skip-archive`, `skip-federated`)

5. 禁用控制面板

  • cPanel/Plesk/Webmin/phpMyAdmin 佔用 120MB+ 記憶體、開放額外埠口、增加攻擊面
  • 改用:CLI 管理、Ansible/Puppet 自動化、SSH 通道臨時啟用 Webmin
  • 記憶體下降 30–40% 典型

6. 改善 Exim 郵件伺服器效能:部署 DNS 快取守護進程

  • `djbdns` (dnscache) / `unbound` / `nscd` / `systemd-resolved`
  • 消除每次從根域遞歸查詢,降低延遲 90%+、減少頻寬、CPU
  • 比 BIND 更輕量、更安全、效能更優

7. GPG 加密指定 AES256 演算法

  • `gpg --cipher-algo AES256 --symmetric backup.tar.gz`
  • AES256 = 256 位元金鑰、開放標準、NSA 核准機密級、無已知實用破解
  • 避免預設 CAST5/3DES 弱演算法

8. 遠端備份安全鐵律

  • 傳輸:`scp` / `rsync -e ssh` / `borg` / `restic` (全程加密)
  • 存取:備份端**不可直接登入/刪除** (單向寫入、Append-only、WORM)
  • 驗證:定期測試還原、校驗和比對、多地備份

9. 更新預設核心參數 (針對資料庫/高併發)

# /etc/sysctl.conf
kernel.shmmax = 268435456        # 32位元系統
kernel.shmmax = 1073741824       # 64位元系統 (1GB)
kernel.msgmni = 1024             # 訊息佇列識別碼數
fs.file-max = 8192               # 系統級檔案控制代碼上限
kernel.sem = "250 32000 32 1024" # 信號量: 單次最大/系統最大/每陣列/陣列數
net.core.somaxconn = 65535       # TCP 監聽佇列長度
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 10               # 降低 Swap 傾向 (資料庫專用)

套用:`sysctl -p`。數值參考 IBM DB2/Oracle/PostgreSQL 官方建議。

10. TCP 優化:調整視窗大小應對長肥管道 (LFN)

  • BDP (Bandwidth-Delay Product) = 頻寬 × RTT
  • 10GbE 跨洲際 (RTT 150ms) → BDP ≈ 187MB → TCP 視窗需 ≥ 187MB
  • `net.ipv4.tcp_rmem = 4096 87380 16777216` (min/default/max 接收緩衝)
  • `net.ipv4.tcp_wmem = 4096 65536 16777216` (發送緩衝)
  • `net.ipv4.tcp_window_scaling = 1` (啟用視窗縮放 RFC 1323)
  • 啟用 BBR 擁塞控制:`net.ipv4.tcp_congestion_control = bbr` (Kernel 4.9+)

技巧 11-20 擴展方向 (後續實施)

  1. 檔案系統掛載選項:`noatime,nodiratime,barrier=0` (資料庫專用裝置)、`discard` (SSD TRIM)
  2. RAID 卡寫入策略:`WriteBack + BBU/FBWC` 保護、讀取預讀 `Adaptive`
  3. LVM 精簡佈建 + 定期 `fstrim` / `blkdiscard` 回收空間
  4. SSD 過度佈建 20–28%、分區對齊 4KB/1MB、避免填滿 70% 以上
  5. Nginx/Apache 事件模型:`epoll` / `kqueue` / `eventport`、Worker 數 = CPU 核心數
  6. 資料庫參數:`innodb_buffer_pool_size = 70% RAM`、Redo Log 4GB+、Binlog `ROW` 格式
  7. 監控三板斧:`Node Exporter + Prometheus + Grafana`、`perf`/`ebpf`/`bpftrace` 深度剖析
  8. 定期核心升級:LTS 核心 + 硬體啟用套件 (HWE)、測試後滾動更新
  9. 容器資源限制:`cgroups v2`、`memory.limit_in_bytes`、`cpu.quota` 防止噪音鄰居
  10. 混沌工程:`Chaos Mesh`/`Litmus` 定期注入故障驗證韌性

結語

Linux 調優無銀彈,只有**「觀測 → 瓶頸定位 → 針對性調整 → 驗證 → 持續監控」**的科學迴圈。前 10 招著眼於**減法** (關服務、降參數、精簡模組),後 10 招著眼於**架構優化** (儲存/網路/資料庫/容器/韌性)。切記:每次調整單一變數、保留基線、可回滾、有監控支撐。

Copyright © Windows教程網 All Rights Reserved
服務功能停用條件
apmd進階電源管理伺服器無電池/不需休眠
nfslockNFS 檔案鎖定不掛載 NFS
isdnISDN Modem 支援無 ISDN 設備
autofs自動掛載 (CD-ROM/網路)固定掛載點、無可移動媒體
sendmail郵件傳輸代理非郵件伺服器、用 Postfix/Exim 替代
xfsX Window 字體服務無 GUI (runlevel 3)