?更多銀河麒麟操作系統產品及技術討論,歡迎加入銀河麒麟操作系統官方論壇
https://forum.kylinos.cn
了解更多銀河麒麟操作系統全新產品,請點擊訪問
麒麟軟件產品專區:https://product.kylinos.cn
開發者專區:https://developer.kylinos.cn
文檔中心:https://document.kylinos.cn
服務器環境以及配置
【機型】
處理器: | Hygon C86 7265 24-core Processor |
內存: | 512GB |
整機類型/架構: | X86_64 |
【內核版本】kernel-4.19.90-23.32.v2101.ky10.x86_64
【OS鏡像版本】銀河麒麟高級服務器操作系統 Kylin-Server-10-SP2-Release-Build09-20210524-x86_64
現象描述
在銀河麒麟高級服務器操作系統V10SP1 系統上跑容器應用,從監控上看,kylin 的 CPU 和連接耗時都和紅帽差距有點大,測試數據如下圖。
1、intel_kylin組合業務耗時特別高,消費數很低;
2、hygon_kylin組合消費數比intel_redhat低了30%,且高并發下cpu異常升高。
現象分析
?intel_kylin問題分析
針對intel_kylin組合業務耗時特別高的問題,分析1000線程數業務測試具體數據,如下圖,copy事務最高耗時達到781s,平均4s多。
cpu使用率及網絡流量監控數據如下圖,cpu使用率僅15%,網絡流量最高不足20MB。
在intel_redhat對比測試,結果也出現耗時突然升到10000ms的情況,分析耗時過高可能是測試程序異常導致數據失真,屬于異常現象。
?hygon_kylin問題分析
(1)針對hygon_kylin組合在600線程時消費數相比低了30%的問題,由于之前沒有抓到600線程時的perf、top等數據,之后復現時再分析;先分析1000線程數具體測試數據。
上圖中copy事務耗時最大值達到了18347.5,可能部分毛刺影響最終結果;抓取機器參數對比,hygon和intel機器各項性能指標如下:
hygon機器相比intel,cpu頻率略低,測試場景下IPC(每cpu周期執行指令數)只有intel的一半多,因此hygon性能可能相對低一點,且測試時限制16C16G,hygon的核心數多的優勢沒有發揮出來,最終可能導致hygon機器測試結果比intel略低。
(2)分析hygon_kylin環境高并發下cpu使用率升高問題,根據hygon_kylin抓到的perf數據,轉成火焰圖如下,熱點主要在ConsumeMessageT、NettyClientSele和NettyClientWork進程中。
對比intel_redhat,perf轉換成火焰圖效果如下。
在hygon_kylin中ConsumeMessageT進程和intel環境占比接近都達到60%以上,說明ConsumeMessageT線程在各自環境中都是主要熱點進程;
再看hygon_kylin上cpu使用率及網絡流量監控,cpu使用率達到75%:
對比intel_redhat上cpu使用率和網絡流量監控平均56%左右。
通過抓取到top數據中的cpu使用率分析hygon_kylin環境cpu使用率升高原因。
對比每個ConsumeMessageT線程cpu使用率,兩套環境比較接近,最高都在12%左右,但是統計多個時間點活動的ConsumeMessageT進程數量,hygon_kylin環境中有107-135個,intel_redhat上只有71-105個,猜測cpu使用率可能跟測試程序拉起的ConsumeMessageT線程數有關,具體可能跟測試程序關系更大。
小結
通過對上述perf、top數據、測試結果進行分析,初步懷疑:
1、intel_kylin環境并不是正常情況下測試,數據可能有問題;
2、hygon機器測試性能低于intel,可能會導致測試結果略低;
3、hygon_kylin環境在高并發場景下拉起了更多ConsumeMessageT測試進程,表現出cpu使用率升高,可能跟測試程序關系更大。
分析結果
復測驗證
使用相同的測試方法復測收集數據來進行驗證,期間測試程序經過幾次改版,最新版本上復測得到的數據如下圖所示。
該版本沒有復現cpu使用率過高的問題,各項指標之間差距也沒那么大。
測試波動分析
intel_redhat在800線程時測試了兩次,第一次測試時消費數較高延遲也較低,但是測試快結束時耗時突然升高,到第二次測試時耗時平均400ms,消費數也有所下降,說明測試結果仍會有一定波動。
intel_kylin復測分析
intel_kylin復測數據和cpu使用率如下,對比intel_redhat各項數據都相差不大;
抓取intel_kylin環境perf數據,轉換成火焰圖效果如下:
在intel_redhat環境抓取的perf火焰圖:
兩個環境各個函數熱點占比接近,沒有發現異常開銷,且測試結果、cpu使用率等也十分接近,說明在intel機器下kylin系統和redhat性能相差不大。
hygon_kylin復測分析
hygon_kylin和cpu使用率監控如下圖,仍有部分毛刺或導致最終平均耗時偏高,測試時cpu利用率在40%左右。
抓取perf火焰圖如下:
對比intel機器,海光的swapper占比更小,業務進程占比都高一些,可能整體cpu使用率仍相對較高,而其他函數比例都比較接近,沒有發現明顯異常的函數熱點。
再通過抓取top數據進行對比,統計各個時間hygon_kylin和intel_rhel機器上的線程數,兩者都是平均65個活動的ConsumeMessageT線程,懷疑新版本的測試程序對此做了一些優化,比之前測試的活動線程數少一些,相應的cpu使用率也較低。
總結
對比兩次測試數據,舊版本測試數據如下:
新版本各個組合測試數據差距沒那么大,cpu使用率也更穩定。
結合上述復測數據和問題分析結果:
(1)測試用例中間經過幾次改版,可能修復了一些bug,之前intel_kylin測試時可能是測試程序異常導致數據失真,復測intel環境下,kylin和redhat系統性能相差不大。
(2)復測hygon_kylin相比intel_redhat性能仍略差,懷疑測試結果有一定波動,并且hygon機器性能低于intel,測試結果可能跟測試波動和機器性能有關。
(3)復測hygon_kylin場景cpu使用率沒有出現異常升高,懷疑也是跟測試程序版本有關,最新版已解決相關bug。
目前復測各個環境測試結果相差不大,相比之前主要改動為測試程序改版,系統沒有相關修改,懷疑主要還是測試程序的問題。