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

如何為 GPU、資料庫和高頻寬 Linux 伺服器選擇、應用和客製化已調整的配置文件,並提供範例和 Ansible 部署技巧。
針對伺服器工作負載優化的調校設定檔
Linux 的預設設定是為了相容性而調整,而非性能。tuned 守護程式內建預先定義的設定檔,可調整 CPU 調速器、I/O 排程器、核心參數及網路緩衝區,以配合特定工作負載。本文將說明這些設定檔的運作原理、常見伺服器角色應選用哪種設定檔,以及如何建立並在整個伺服器群組中部署自訂設定檔。
調整後設定檔的運作方式
設定檔是位於 /usr/lib/tuned/profiles/ (system) 或 /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 | 降低交換傾向,並針對半虛擬化 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 與網頁伺服器:
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 工作負載打造的專用伺服器。

Linux 伺服器工作負載最佳化的調校設定檔
如何為 GPU、資料庫和高頻寬 Linux 伺服器選擇、應用和客製化已調整的配置文件,並提供範例和 Ansible 部署技巧。
16 分鐘閱讀 - 2026年6月9日
Linux OOM Killer Tuning for VPS:實用指南
12 分鐘閱讀 - 2026年6月8日