針對 Linux 伺服器工作負載最佳化所調校的設定檔
16 分鐘閱讀 - 2026年6月9日

如何為 GPU、資料庫及高頻寬 Linux 伺服器選擇、套用並自訂最佳化設定檔,並附有範例與 Ansible 部署技巧。
用於伺服器工作負載優化的調校設定檔
Linux 的預設設定是為了相容性而調整,而非為了效能。tuned 守護程式內建預先定義的設定檔,可調整 CPU 調速器、I/O 排程器、核心參數及網路緩衝區,以配合特定工作負載。本文將探討這些設定檔的運作原理、常見伺服器角色應選用哪種設定檔,以及如何建置並在整個伺服器群中部署自訂設定檔。
「已調整設定檔」的運作方式
設定檔是位於 /usr/lib/tuned/profiles/ (系統) 或 /etc/tuned/profiles/ (自訂) 目錄下的子目錄,其中包含一個 tuned.conf 。該設定檔會依外掛程式將參數分組: [cpu], [disk], [sysctl], [vm], [bootloader]等。啟用設定檔後,tuned 守護程式會一次性套用所有參數,而非分別執行數十個 sysctl 並 sysfs 命令。
配置檔可透過 include 指令相互繼承。例如, throughput-performance 設定檔,例如,可作為自訂資料庫設定檔的基礎,該自訂設定檔僅覆寫 vm.swappiness 「透明巨頁 (Transparent Huge Pages)」設定的自訂資料庫設定檔,可將此設定檔作為基礎。
tuned 具有兩種運作模式。靜態調校會在啟用時一次性套用設定檔,之後不再干預系統運作;這正是生產伺服器所需的模式,因為在這種環境下,一致性比節能更為重要。動態調校則會即時監控磁碟、網路及負載使用狀況,並即時調整設定。效能設定檔預設會停用動態調校,以避免監控所造成的開銷。
為您的工作負載選擇合適的設定檔
tuned 提供了十餘種預設設定檔,涵蓋了大多數常見的工作負載。請選擇與伺服器實際運作功能相符的設定檔,而非保留預設 balanced 設定檔。
| 工作負載 | 設定檔 | 功能說明 |
|---|---|---|
| GPU 訓練與推論 | accelerator-performance | 將 CPU 鎖定在低 C 狀態,使 CPU 至 GPU 的延遲維持在 100 微秒以下 |
| 資料庫(Postgres、MySQL、Redis) | throughput-performance | 停用省電模式、調整磁碟與網路 I/O 設定、停用透明巨頁 (Transparent Huge Pages) |
| 高頻寬網路(CDN、複寫、資料管線) | network-throughput | 擴大核心網路緩衝區,以維持持續的高頻寬傳輸 |
| 對延遲敏感的服務 | network-latency 或 latency-performance | 將 CPU 調速器鎖定為 performance,並停用深度 C 狀態 |
| HPC 與運算叢集 | hpc-compute | 透過 NUMA 與記憶體調校來提升延遲與效能 |
| VPS 實例(客體作業系統) | virtual-guest | 降低 swappiness 值,並針對半虛擬化 I/O 增加磁碟預讀量 |
| KVM 虛擬化平台主機 | virtual-host | 針對虛擬機器工作負載調整髒頁寫回設定 |
| 混合或未知 | balanced | 預設設定。以效能換取電源效率 |
針對特定資料庫引擎,tuned 亦提供 postgresql, mssql,並 oracle 提供比 throughput-performance 針對這些引擎的共享記憶體和核心排程器參數進行微調,以實現更深入的優化。
在多插槽伺服器上,NUMA 拓撲至關重要。遠端節點的記憶體存取速度可能比本地存取慢兩到三倍。對於雙插槽伺服器上對延遲要求嚴格的工作負載,請在設定檔中停用自動 NUMA 平衡功能,並手動將程序固定到特定節點。
安裝與套用設定檔
在 RHEL、Rocky、AlmaLinux 或 Fedora 上安裝並啟用 tuned:
dnf install tuned
systemctl enable --now tuned在 Debian 和 Ubuntu 上,該套件亦稱為 tuned ,並透過 apt。若 power-profiles-daemon 已運行,請將其標記為隱藏以避免衝突:
systemctl mask --now power-profiles-daemon列出可用設定檔、詢問 tuned 針對該硬體的建議、套用設定檔,並進行驗證:
tuned-adm list
tuned-adm recommend
tuned-adm profile throughput-performance
tuned-adm verify當前有效的設定檔儲存於 /etc/tuned/active_profile 中,並會在重新開機後保留。若要完全移除調校設定並測量基準值,請執行 tuned-adm off.
為 AI、ML 及高頻寬工作負載建立自訂設定檔
當預設設定檔已滿足 90% 的需求時,請建立一個自訂設定檔,該設定檔應繼承最接近的預設設定檔,並覆寫其餘參數。請從一個目錄和一個設定檔開始:
mkdir -p /etc/tuned/ai-gpu
cat > /etc/tuned/ai-gpu/tuned.conf <<'EOF'
[main]
summary=Custom profile for GPU training with high-bandwidth networking
include=accelerator-performance
[cpu]
governor=performance
[sysctl]
kernel.numa_balancing=0
net.core.rmem_max=268435456
net.core.wmem_max=268435456
net.ipv4.tcp_rmem=4096 87380 268435456
net.ipv4.tcp_wmem=4096 65536 268435456
[vm]
transparent_hugepages=never
[bootloader]
cmdline=hugepagesz=2M hugepages=16384 <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit">iommu</a>=pt
EOF
tuned-adm profile ai-gpu此處的關鍵設定:
numa_balancing=0此設定可阻止核心在訓練執行期間於插槽之間遷移記憶體,這是雙插槽 GPU 系統中常見的停滯原因。- 該
rmem_max和tcp_rmem的數值將插槽緩衝區上限提高至 256MB。在訓練節點間採用 25G、40G 或 100G 互連時,預設的緩衝區大小會將吞吐量限制在遠低於線速的水平。 transparent_hugepages=never可消除 THP 對 PyTorch 和 TensorFlow 等會分配大型張量的框架所造成的延遲波動。iommu=pt將 IOMMU 設為直通模式,此為 GPU 和 NIC 直通所必需,並可降低裸機 DMA 的開銷。
任何低於 [bootloader] 均需重新開機。啟用設定檔後,請執行 tuned-adm verify 以確認執行時參數已套用,並檢查 journalctl -u tuned 是否有錯誤。請使用 iostat -xz, numastat,並使用相關工作負載工具(iperf3, fio,或實際訓練執行)進行測試。
有一項權衡值得明確說明:停用 CPU 安全緩解措施可在 GPU 工作負載上提升約 3-8% 的效能,但在系統呼叫模式密集的工作負載上會造成 15-30% 的效能損失。請根據該系統的威脅模型來決定。若位於防火牆後方的專用訓練叢集內,從數值分析來看,通常傾向於停用這些措施。 在多租戶主機上,請保持這些措施啟用。
管理伺服器群組中的設定檔
當伺服器數量超過寥寥數台時,手動套用 `tuned` 便不再可行。Ansible 能乾淨俐落地處理此問題。單一 Playbook 即可安裝 `tuned`,並將自訂設定檔目錄放置於 /etc/tuned/ 透過 template 模組,並根據清單群組套用相應的設定檔。
將設定檔映射至清單中的角色:
- GPU 與 AI 節點:
accelerator-performance,或繼承自該設定檔的自訂設定檔 - 資料庫伺服器:
throughput-performance或引擎專用的設定檔 - 傳輸高頻寬流量的 CDN 與邊緣節點:
network-throughput - 位於負載平衡器後方的 API 與 Web 伺服器:
network-latency - VPS 與 KVM 虛擬機器:
virtual-guest - 虛擬化主機:
virtual-host
設定偏移才是真正的運維問題。手動 sysctl 變更、隨新預設值發布的套件升級,或是其他配置管理工具干擾了「tuned」,都會導致設定與配置檔所定義的內容產生偏差。請排程執行 Ansible 工作 tuned-adm active 並 tuned-adm verify 透過 cron 執行,並在發生失敗時發出警示。請留意 /var/log/tuned/tuned.log 「驗證失敗」的記錄行。
結論
tuned 消除了內核與 sysctl 調校中大部分的猜測成分。預設值對於一般用途已足夠,而針對特定工作負載的設定檔,例如 accelerator-performance, throughput-performance,以及 network-throughput 等針對特定工作負載的設定檔,能讓您無需撰寫任何設定檔,便已達成大部分的優化目標。
- 選擇最接近的預設設定檔,執行
tuned-adm verify,接著進行效能測試 - 透過繼承預設設定檔並僅覆寫所需項目來建立自訂設定檔
- 針對 GPU 及高頻寬伺服器,務必審慎設定 NUMA 平衡、巨頁 (hugepages) 以及網路緩衝區大小
- 使用 Ansible 進行部署,並按排程執行稽核以偵測設定偏移
需要具備足夠頻寬餘裕的裸機運算能力,才能實際運用這些設定嗎?請與 FDC 洽談,了解專為高吞吐量及 GPU 工作負載打造的專用伺服器。

iperf3 教學指南:在 Linux 與 Windows 上測試網路速度
在 Linux 和 Windows 系統上安裝 iperf3、執行頻寬測試,並調整 TCP 緩衝區以獲得準確結果。涵蓋 UDP、雙向及 10GbE+ 測試
10 分鐘閱讀 - 2026年5月7日