性能測試系統(tǒng)常用監(jiān)控- -CPU
前言
在性能測試過程中CPU負載狀態(tài)是重要監(jiān)控指標項,它綜合反應了系統(tǒng)的負載情況,根據(jù)監(jiān)控的各指標項可以對系統(tǒng)或應用進一步分析調優(yōu)。
一、常用概念
- 架構:x86(intel、AMD、海光等)、MIPS(龍芯)、ARM(飛騰、麒麟)、SW(申威),同等架構和工藝情況下,核心數(shù)越多,擴展性越好;主頻越高,性能越好
說明:一般情況下x86性能 > ARM性能 > MIPS性能,核心數(shù)越多,支撐的并發(fā)連接越多,吞吐量越大
- NUMA
NUMA(Non-Uniform Memory Access)非一致性內存訪問
基本特征:
1、具有多個CPU模塊,每個CPU模塊由多個CPU組成,并且具有獨立的本地內存,I/O槽口等。節(jié)點(模塊)之間可以通過互聯(lián)模塊(Crossbar Switch)進行連接和信息交換,因此每個cpu可以訪問整個系統(tǒng)的內存。減少跨核訪問、跨處理器競爭沖突。
2、訪問本地資源(本地內存、I/O槽口)的速度遠遠高于訪問遠地資源(其他node的資源)的速度,但是同樣存在問題就是多個node 之間的資源交互非常慢,當cpu增多的情況下,性能提升的幅度并不是很高,無法實現(xiàn)性能的現(xiàn)象增加。 - SMP
SMP(Symmetric Multi-processing)對稱多處理器
基本特征:
1、 服務器中多個cpu對策工作,無主次,各cpu共享相同的物理內存,每個cpu訪問內存任何地址所需時間相同,也被稱為一致性內存訪問(UMA)。
2、系統(tǒng)中所有資源 (CPU 、內存、 I/O 等 ) 都是共享的。也正是由于這種特征,導致了 SMP 服務器的主要問題,那就是它的擴展能力非常有限。對于 SMP 服務器而言,每一個共享的環(huán)節(jié)都可能造成 SMP 服務器擴展時的瓶頸,而最受限制的則是內存。 - 綁核
設置進程的處理器親和性,可以將進程綁定到特定的一個或多個CPU上去執(zhí)行,而不允許將進程調度到其他cpu上,減少切換(軟中斷)從而提高性能。
taskset -pc cpulist pid
說明:fffff:表示進程可以在host上任何cpu運行
二、性能指標
CPU使用率:用戶CPU
、系統(tǒng)CPU
、IOWAIT、軟中斷
、硬中斷
、竊取CPU、客戶CPU
上下文切換:自愿上下文切換、非自愿上下文切換平均負載
CPU緩存命中率
三、性能分析
工具或命令:top、ps、vmwait、mpstat、sar、piestat、strace、perf、execsnoop、htop、atop
模塊 | 類型 | 度量方法 | 衡量標準 |
---|---|---|---|
CPU | 使用情況 | 1.vmstat統(tǒng)計1-id計數(shù),”%util” 2.sar –u統(tǒng)計1-%idle計數(shù),”%util” 3.dstat統(tǒng)計1-idl計數(shù) 4.mpstat –P ALL統(tǒng)計1-%idle計數(shù) 5.ps統(tǒng)計cpu計數(shù) |
注意>=50% 告警>=70% 嚴重>=90% |
CPU | 滿載 | 1.vmstat的r計數(shù) >CPU邏輯顆數(shù) 2.sar –q,”runq-sz” >CPU邏輯顆數(shù) 3.dstat –p,”run” >CPU邏輯顆數(shù) |
運行隊列大于1時,證明已經(jīng)有一定負載,不過計數(shù)也不絕對,需進一步分析其他資源情況來判斷CPU是否已經(jīng)滿載 |
CPU | 錯誤 | 通過perf工具捕獲處理器錯誤信息 |
四、調優(yōu)方法
CPU綁定、進程CPU資源限制、中斷負載均衡、CPU緩存、NUMA優(yōu)化
五、常用分析
5.1 top命令解析
Load average:24.23, 8.27, 3.57 #過去1、5、15分鐘系統(tǒng)負載,分析負載趨勢:是否增加,穩(wěn)固,降低等。
cpu使用率=100% - %id
指標項 | 描述 |
---|---|
%cpu | cpu使用率,實際數(shù)值可以超過100%,最大值為100N,N為CPU核心個數(shù) |
us | 用戶態(tài)cpu占用率 |
sy | 系統(tǒng)內核態(tài)cpu占用率 |
id | cpu空閑率 |
wa | cpu等待輸入輸出占比 |
hi | 硬中斷占比 |
si | 軟中斷占比 |
Mem total | 物理內存總量 |
Mem used | 使用的物理內存總量 |
Mem free | 空閑內存總量 |
Mem buff/cache | 用作內核緩存的內存量/緩沖區(qū)總量 |
Swap total | 使用的交換區(qū)總量 |
Swap used | 空閑交換區(qū)總量 |
tips
top命令后按d,修改打印間隔,W保存設置,下次進入也生效
top命令后按f,進入列配置,d選中添加或移除,W保存設置,下次進入也生效
top命令后按1,查看各顆cpu利用詳情
重定向輸出:top –b –d 1 –n 3 > top.log #-b:對齊輸出,-d:延遲間隔,-n:迭代次數(shù)。(只顯示前10行: top -b -d 1 -n 3 |grep ^top -A 10)
說明:大量網(wǎng)絡吞吐量會導致占用CPU的資源增大,大量的CPU開銷會嘗試更多的內存使用
-
虛擬內存
當系統(tǒng)的物理內存不夠用時,需要將物理內存中一部分空間釋放出來,以供當前運行程序使用。被釋放的空間可能來自于很長時間沒有操作的程序,被釋放用的程序被臨時保存到虛擬內存空間中,等程序需要運行時,再從虛擬內存中恢復保存的數(shù)據(jù)到物理內存中。系統(tǒng)總是在物理內存不夠時,才進行內存之間的交換。文章來源:http://www.zghlxwxcb.cn/news/detail-456666.html -
軟中斷
軟中斷優(yōu)先級低于硬中斷,軟中斷消耗的cpu周期相對比硬中斷要多。負責將包進行各種處理,完成從驅動層、到網(wǎng)絡協(xié)議棧,最終把處理出來的數(shù)據(jù)放到socker的接收buffer中。文章來源地址http://www.zghlxwxcb.cn/news/detail-456666.html
5.2分析思路
- %usr:用戶態(tài)消耗時間,如果比較大;說明用戶程序本身有CPU瓶頸,需要優(yōu)化程序本身。
- %sys:系統(tǒng)內核消耗時間,如果比較大;說明系統(tǒng)調用函數(shù)花費時間很多,系統(tǒng)調用有CPU瓶頸,可能是程序非常多次調用系統(tǒng)內核函數(shù)導致,需要優(yōu)化代碼。
- %idle:空閑cpu,如果較大,則CPU不是瓶頸。
到了這里,關于【性能測試】系統(tǒng)常用監(jiān)控- -CPU的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!