tuned / sysctl / cpufreq¶
GRUB 設定的是 boot-time 不可變參數;本章是 runtime 可調的部分。
tuned profile¶
network-latency(內含 latency-performance)是 RHEL 針對低延遲網路場景設計的調校 profile,涵蓋 CPU、記憶體、網路各層面的優化,直接套用即可。
驗證:
sysctl 設定¶
/etc/sysctl.d/99-hugepages.conf¶
Runtime 階段的 hugepage 配置最低保證。GRUB 已經預配 256,這裡只是再次確認。
/etc/sysctl.d/90-quote-mcast.conf¶
行情 multicast 走獨立 NIC 進來。若該 NIC 的 reverse-path filter(rp_filter)為
strict(1,多數 distro 預設),而行情 feed source 子網的反向路由走另一張 NIC,
kernel 會在 IP routing 層靜默丟掉每一個行情封包——quote-receiver 完全收不到、
UdpInErrors 也不會動。這是 multi-homed 主機的典型陷阱,事後查極耗時
(見 常見錯誤對照)。
裝機時就把行情 NIC 設成 loose(2)一勞永逸;loose 仍擋真正路由不到的偽造來源。
若行情 NIC 是專用、上面不跑其他流量,設 0(全關)亦可——兩者對行情都是修好,
strict(1)才是唯一會出事的值。
interface-specific sysctl 的開機時序
net.ipv4.conf.<NIC>.rp_filter 這類綁定特定 NIC 的設定,開機套用時需該 NIC
已建立。sysctl --system 若在 NIC 出現前執行會跳過該行。重開機後務必複查
sysctl net.ipv4.conf.<行情NIC>.rp_filter;若被打回 1,改用 NetworkManager
dispatcher script 或 udev rule 在 NIC up 時設定。
套用¶
CPU 頻率¶
GRUB 的 cpufreq.off=1 已停用 cpufreq driver,runtime 不需要也無法用 cpupower 設 governor——cpupower frequency-set -g performance 在這個 setup 下會 silent no-op,cpupower frequency-info 會回 no or unknown cpufreq driver is active,都是預期行為。
CPU 跑在最高頻率(E-2388G base 3.20 GHz、實際 4.6+ GHz turbo)靠的是 GRUB 的 idle=poll:所有核永遠活躍、不進 idle,PCU 因此套用 all-core turbo bin。
驗證實際運作頻率(需 root):
不要再手動疊加 cpuidle/governor 設定
在 isolated cores 上額外手動覆寫 cpuidle / governor(除了 tuned 之外又加一層)反而造成效能退化。
結論:boot-time 用 GRUB 鎖死,runtime 只用 tuned,不要再加第三層。
排錯¶
-
tuned-adm active顯示其他 profile → 重設sudo tuned-adm profile network-latency,然後systemctl enable tuned -
重開機後 sysctl 設定失效 → 確認檔案在
/etc/sysctl.d/(非/run/sysctl.d/)。後者是 runtime overlay 不持久