【AIX】PowerAIXCPU摺疊功能介紹 processor folding
作者:王思文
文章來自微信公眾號平臺人生
1.CPU摺疊功能介紹
虛擬處理器管理(VirtualProcessorManagement),也稱之為處理器摺疊技術(CPUFolding),是一項Power虛擬化特性,用於控制一個LPAR處理使用的VP(VirtualProcessor)數量。按目前AIX的設定,預設對微分割槽(即共享處理器分割槽)開啟了處理器摺疊功能;而專有處理器分割槽(dedicatedLPAR)則預設關閉此功能。
處理器摺疊技術的作用主要體現在兩個方面:
1)節能,如果一個物理核心對應的所有VP都處於被摺疊狀態,PowerVMhypervisor可以將這顆核心置於低能耗狀態。
2)提高整體處理效率,特別是在EC:VP配比較低的環境,比如1:10或以上(在新一代power資源池中,EC:VP=1:2),如果直接將十多倍的VP排程到每個物理核心(PhysicalProcessor,PP)上,將造成一定的排程開銷;因此透過摺疊不必要的VP,可以有效降低hypervisor的無謂開銷,提高整體效率。
這個特性在兩種場景都有幫助: 1)LPARCPU使用率不高,多數VP空閒;透過減少VP數量,可以有效提高每個VP對應的物理核心份額(即physc,可以透過mpstat/sar–PALL等檢視每個核心的pc/physc值);從而可以有效減少hypervisor以及作業系統的排程開銷。比如如果分割槽只能實際消耗掉16顆物理核心(lparstat顯示physc=16),但設定的VP數為64,如果系統能只使用16個VP來排程作業,則VP被排程到物理核心時是1:1的方式(接近Dedicated模式),hypervisor排程效率比較高,親和度一般也更優;而與此相比,如果系統直接使用64個VP來排程作業,則VP被排程到物理核心時是4:1的方式,效率以及親和度一般會略低。
2)處理器池(processorpool)中處理器資源緊張,LPAR開始爭搶CPU資源;VP數量實際上定義了LPAR能爭搶到的物理核心的上限;但並非每個分割槽都總是能搶到上限值,尤其是在EC:VP配比較低的環境下。在處理器資源競爭激烈時,分割槽能得到的總處理器資源可能會受到限制,此時減少分割槽的VP數量也有整體排程上的好處。比如一個8VP的分割槽,如果只能得到2.0顆物理核心(physc=2.0),那麼如果啟用的VP數減少到4的話(相當於每個VP平均能拿到0.5physicalcore),效能一般比VP為8時要更優(相當於每個VP平均能拿到0.25physicalcore)。
2.AIXCPU摺疊演算法以及實驗
每一秒,AIX作業系統監控本分割槽的總體VP利用率,如果總體VP利用率低於vpm_fold_threshold(AIX6.1TL6以後預設為49%;可透過schedo命令確認),AIX將啟用摺疊功能,開始向下摺疊VP,使負載執行在較少的VP上。注意被摺疊的VP在系統中仍然存在,只是系統不再往這些被摺疊的VP排程作業執行緒了。而如果總利用率超出vpm_fold_threshold, AIX將開始展開VP使用更多的VP來排程負載。使用者可以透過控制引數來選擇是否開啟folding策略;還可以透過schedo的vpm_xvcpus選項來設定保底啟用的VP數量。
2.1VPM控制引數說明
Folding策略開關由schedo的vpm_fold_policy選項控制。
1) vpm_fold_policy=0在靜態節能模式以外的場景關閉folding功能;
2) vpm_fold_policy=1只在微分割槽環境開啟folding功能(預設設定);
3) vpm_fold_policy=2只在專有處理器分割槽環境開啟folding功能;
4) vpm_fold_policy=3在微分割槽、專有處理器分割槽環境均開啟folding功能;
5) vpm_fold_policy=4徹底關閉folding功能;
還有一個影響Folding策略開關的引數vpm_xvcpus, 它的作用是控制當微分割槽CPU不足的時候,系統可以自動啟動的微分割槽的數量。
1) 設定vpm_xvcpus = -1, vpm_fold_policy會自動被設定為0,這樣會關閉folding功能。但如果此時分割槽開啟了靜態節能模式(StaticPowerSaving),則系統會自動設定vpm_fold_policy為3開啟folding功能;
2) 設定vpm_xvcpus = 0,表示啟用了CPU摺疊功能(ProcessorFolding),虛擬處理器正接受管理;
3) 設定vpm_xvcpus大於1,CPU摺疊功能開啟,並且開啟的虛擬CPU數目為物理CPU使用數與vpm_xvcpus引數之和。即:
number=ceiling(p_util+vpm_xvcpus);
其中number是所需的虛擬處理器數,p_util是物理處理器使用情況。如果number小於當前已啟用的虛擬處理器數,那麼將禁用某個虛擬處理器。如果number大於當前已啟用的虛擬處理器數,將啟用已禁用的虛擬處理器。在vpm_xvcpus大於1的情況下,也表示保底啟用的CPU數。連線到已禁用的虛擬處理器的執行緒仍然可以在已禁用的虛擬處理器上執行
說明:
1) StaticPowerSaverMode:靜態節能模式是當系統CPU工作負載低的時候,系統把物理CPU主頻和電壓降低到一個固定值,以達到節能目的。一般關注效能的系統不建議採用此設定。
2) DynamicPowerSaverMode:動態節能模式是系統根據CPU負載大小,實時調整物理CPU主頻和電壓(不是固定值),以達到節能目的。
3) 系統預設設定以上兩種節能模式都是關閉的,可以透過HMC/ASMI設定。
2.2AIXCPU摺疊實驗
開啟一個ncpu任務給系統增加CPU負載,啟動16個程式,每個50%時間繁忙,這樣大約需要佔用8顆物理core。
微分割槽環境下,關閉處理器摺疊時的表現:
微分割槽環境下,開啟處理器摺疊時的表現:
透過kdb命令也可以檢視到VP的摺疊現象,下圖中標識“DIS”的即為摺疊狀態的邏輯CPU.
可見:
1) 從lparstat可以看到,無論folding開啟或者關閉,physc大約為8.00左右;
2) 從mpstat -s的輸出可知,同樣的場景下(8個任務50%繁忙),啟動cpu folding時,只需要9顆VCPU;而關閉cpu folding時,所有16顆VCPU都被啟動了;
3.CPU摺疊功能對系統的影響
3.1 關閉CPUfolding的影響:
關閉了系統核心對微分割槽環境的自動排程最佳化;所有的VP都會被排程到hypervisor,不管這些VP上是否有實際負載;更高的hypervisor延時,物理資源親和度也可能受到影響。
3.2 關閉CPU folding的好處:
對於分割槽sizing非常完美的情形下,比如EC:VP始終控制在不低於1:2,而且處理器池資源從未受限,這時關閉folding可能獲得一定的效能收益(主要是透過減少VPM管理開銷,以及避免unfold展開CPU延遲)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2141427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Eclipse】--Eclipse摺疊程式碼外掛foldingEclipse
- IntelliJ IDEA中,程式碼摺疊(Code Folding)功能 取消 預設的 方法體自動展開IntelliJIdea
- BootStrap | 例項 - 摺疊boot
- java之常量摺疊Java
- Sublime程式碼摺疊
- 【BootStrap】--摺疊外掛boot
- AIX smit 選單介紹AIMIT
- 蘋果OLED摺疊手機和可摺疊平板電腦情景分析蘋果
- 微信疑似推出朋友圈多內容摺疊功能HQTQT
- 榮耀摺疊,太卷啦
- Aix 上NFS詳細介紹AINFS
- 可摺疊iPhone概念設計圖:手機可摺疊秒變筆記本iPhone筆記
- 曝蘋果摺疊屏iPhone再度延期2年!或將研發可摺疊MacBook蘋果iPhoneMac
- 使用Jquery和CSS摺疊影象jQueryCSS
- UI之可摺疊的TextViewUITextView
- PaperView:像紙一樣摺疊View
- margin系列之外邊距摺疊
- 給 RecyclerView 加上摺疊的效果View
- 摺疊::Vim進階索引[2]索引
- CSS的特性之層疊性介紹CSS
- TSM功能模組介紹
- 不怕被摺疊了!微信新版本支援訂閱號置頂功能
- Axure 教程:製作摺疊選單
- intelliJ idea程式碼摺疊IntelliJIdea
- 可摺疊,可標記日曆
- AIX中find命令和xargs命令介紹AI
- Visual Studio Code釋出1.29版本,改進搜尋、堆疊資訊摺疊等功能
- FreeSql aop功能介紹SQL
- 代理ip的功能介紹
- MySQL角色(role)功能介紹MySql
- Java 18 新功能介紹Java
- Java 16 新功能介紹Java
- 直播商城APP功能介紹APP
- Java 20 新功能介紹Java
- Flutter 常用功能介紹Flutter
- Veritas Storage Foundation 功能介紹
- AI巨幕之下,資料不只摺疊AI
- js輕鬆實現摺疊皮膚JS