標籤:

虛擬化性能調優之cpu篇

虛擬化性能調優之cpu篇

4 人贊了文章CPU優化分析主要是兩個階段,虛擬化層和宿主機層。

前期主要懷疑是虛擬化層的影響,主要的懷疑點包括:

1.超線程的影響

關閉超線程之後單核性能有略微提升,但多核性能反而更差,排除超線程的因素

2.NUMA架構和核遷移的影響

按理說如果不按照NUMA的架構來做核綁定,由於緩存和遷移的影響,或造成較大的性能損失,通過綁定物理核測試發現並沒有大的提升,排除該因素

3.CPU模式的影響,包括指令集和緩存

分析與vmware的差異,發現我們的指令集和cpu緩存與真實物理機不一致,通過cpu-passthrough和替換qemu版本將host cpu的特性透傳仍然無法提升cpu性能

排除了虛擬化層的影響,後來測試發現宿主機本身才是cpu性能的關鍵,部署了一個redhat對比環境發現宿主機跑分和redhat未經調優過系統差距很大。分析了內核配置參數差異(sysctl)和編譯參數差異,沒有發現可疑的地方。決定內核行為的並且用戶可以干預的只剩下啟動參數了,對比發現系統關閉了intel的cstate功能。

寫了一個簡單的死循環測試對比兩個系統的表現,發現redhat內核有負載的cpu頻率可以提高到3.1GHz,而當前host機只能達到2.6GHz,即使調整了cpufreq的模式為performance也無法讓cpu達到更高的主頻。所以基本可以確認是這個參數導致的。打開系統中cstate功能,跑speccpu可以達到和redhat類似的性能分數。

解決措施:目前發現cstate功能和調頻功能有耦合,需要使能cstate來解決cpu性能問題,去掉啟動參數intel_idle.max_cstate=0 idle=poll

intel cpu調頻和節能相關的幾個機制簡介:

cpufreq:提供頻率調節功能,可以讓cpu根據不同負載使用不同的頻率,達到性能和功耗的動態可調整,伺服器一般配置為performance,個人pc可以配置為ondemand或者powersave模式

cstate:cpu深度睡眠節能模式,根據cpu睡眠器件,定義了多種睡眠狀態,提供不同程度的節能選擇,睡眠模式越高,喚醒代價越大。

pstate:通過調正cpu的電壓是cpu工作在不同的頻率,調頻的一種機制

turbo boost:睿頻技術,可以使cpu工作在高於額定主頻模式來提升性能。

Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.

Power Management States: P-States, C-States, and Package C-States

xenserver.org/partners/
推薦閱讀:

IT新手應用程序虛擬化
廣東觀音山:竭力守護綠水青山 勵志打造生態文明
CSP 課堂筆記之 Hypervisor
內核、虛擬化以及Intel CPU特性初涉
「虛擬化妝」功能已上線 AR試妝或成未來趨勢

TAG:虛擬化 |