外貿(mào)領(lǐng)航
首頁(yè)國(guó)際貿(mào)易 > linux查看性能指標(biāo)「ENE指標(biāo)」

linux查看性能指標(biāo)「ENE指標(biāo)」

來(lái)源:互聯(lián)網(wǎng) 2024-07-12 10:04:06

性能測(cè)試指標(biāo)是衡量系統(tǒng)性能的評(píng)價(jià)標(biāo)準(zhǔn),常用的系統(tǒng)性能測(cè)試指標(biāo)包括:響應(yīng)時(shí)間、并發(fā)用戶/并發(fā)、點(diǎn)擊率、吞吐量、TPS/QPS、PV/UV;Linux服務(wù)器常用的性能指標(biāo)包括:CPU使用率、內(nèi)存占用率、磁盤IO、系統(tǒng)平均負(fù)載等。

一 系統(tǒng)性能測(cè)試指標(biāo)1.1 響應(yīng)時(shí)間

響應(yīng)時(shí)間是指某個(gè)請(qǐng)求或操作從發(fā)出到接收到反饋所消耗的時(shí)間,包括應(yīng)用服務(wù)器(客戶端)處理時(shí)間、網(wǎng)絡(luò)傳輸時(shí)間以及數(shù)據(jù)庫(kù)服務(wù)器處理時(shí)間。比如一個(gè)頁(yè)面從點(diǎn)擊/輸入到完全加載的時(shí)間;完成一次增加、刪除、修改或者查詢動(dòng)作的事務(wù)響應(yīng)時(shí)間等。

一個(gè)請(qǐng)求在網(wǎng)絡(luò)上的傳輸往往要經(jīng)歷多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)才能到達(dá)目標(biāo)服務(wù)器,我們假設(shè)請(qǐng)求經(jīng)歷了三個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的傳輸時(shí)間B1、B2、B3,客戶端的處理時(shí)間為A,服務(wù)器的響應(yīng)時(shí)間為C。則一次請(qǐng)求的完整路徑可以描述為下圖:

客戶端從發(fā)出請(qǐng)求到接收到服務(wù)器反饋的完整鏈路時(shí)間為A—>B1—>B2—>B3—>C(節(jié)點(diǎn)處理時(shí)間都包括接收和發(fā)送兩個(gè)過程)。則請(qǐng)求的響應(yīng)時(shí)間為:

響應(yīng)時(shí)間=A B1 B2 B3 C

1.2 并發(fā)

并發(fā)是指多個(gè)用戶在同一時(shí)期內(nèi)進(jìn)行相同的事務(wù)處理或操作。由于用戶在進(jìn)行一系列操作流程時(shí)有一定的時(shí)間間隔(即用戶思考時(shí)間)或者服務(wù)器處理請(qǐng)求有先后順序,于是,就產(chǎn)生了絕對(duì)并發(fā)和相對(duì)并發(fā)概念的區(qū)分。

絕對(duì)并發(fā)是指同一時(shí)刻(即同一時(shí)間點(diǎn))并發(fā)用戶對(duì)服務(wù)器同時(shí)發(fā)送請(qǐng)求。

相對(duì)并發(fā)是指一段時(shí)間內(nèi)(即同一時(shí)間區(qū)間)并發(fā)用戶對(duì)服務(wù)器發(fā)送請(qǐng)求。

舉個(gè)例子,一個(gè)并發(fā)量為10000人(可同時(shí)容納10000人)的動(dòng)物園,這里的并發(fā)量是指絕對(duì)并發(fā)還是相對(duì)并發(fā)呢?我們很容易理解,這個(gè)并發(fā)指的是相對(duì)并發(fā),因?yàn)檎麄€(gè)動(dòng)物園是一個(gè)交織的網(wǎng)狀結(jié)構(gòu),出入口、老虎、獅子、大象等各個(gè)動(dòng)物站點(diǎn)都有分流的作用,基本不可能出現(xiàn)出入口或者站點(diǎn)能夠同時(shí)承載10000人的情況,出入口的并發(fā)可能只有200人。

因此這個(gè)動(dòng)物園的例子里,并發(fā)量10000是指各個(gè)節(jié)點(diǎn)的總和,參觀者參觀動(dòng)物園有路徑的先后順序,是相對(duì)并發(fā)的概念。而出入口的并發(fā)量是200人,則是指同一時(shí)間在出入口能夠同時(shí)容納200人,這就是絕對(duì)并發(fā)的概念。

一般來(lái)說(shuō),在系統(tǒng)的性能測(cè)試中,系統(tǒng)或者模塊的并發(fā)更多是指相對(duì)并發(fā),而接口的并發(fā)更傾向于絕對(duì)并發(fā)。并發(fā)性能的概念是指系統(tǒng)、模塊或接口穩(wěn)定運(yùn)行,不拋出異常情況下所能夠承載的并發(fā)量。

在并發(fā)性能測(cè)試中常用到并發(fā)用戶數(shù)和并發(fā)請(qǐng)求數(shù)兩個(gè)指標(biāo)。顧名思義,并發(fā)用戶數(shù)是指同一時(shí)間(點(diǎn)或區(qū)間),系統(tǒng)、模塊或接口能夠承載的用戶數(shù)量;并發(fā)請(qǐng)求數(shù)是指同一時(shí)間(點(diǎn)或區(qū)間),系統(tǒng)、模塊或接口能夠承載的請(qǐng)求數(shù)量。

1.3 點(diǎn)擊量/點(diǎn)擊率

點(diǎn)擊量是衡量網(wǎng)站流量的一個(gè)指標(biāo),也就是點(diǎn)擊數(shù)clicks,是對(duì)網(wǎng)站點(diǎn)擊數(shù)據(jù)的統(tǒng)計(jì)。

點(diǎn)擊率(Clicks RatIO)也可以叫做點(diǎn)進(jìn)率(“Click-through Rate),它是網(wǎng)站上某一內(nèi)容被點(diǎn)擊的次數(shù)與整個(gè)網(wǎng)站內(nèi)容被顯示次數(shù)之比,即clicks/views。反應(yīng)了網(wǎng)站上某一頁(yè)面或內(nèi)容的受關(guān)注程度,經(jīng)常用來(lái)衡量廣告的吸引程度。比如公眾號(hào)的一篇文章被瀏覽了10w次,文章中的廣告鏈接被點(diǎn)擊了2000次,那么這條廣告的點(diǎn)擊率是2%(2000/100000*100%)。

在性能測(cè)試領(lǐng)域,點(diǎn)擊率(hit rate)常指單位時(shí)間內(nèi)(每秒鐘)頁(yè)面的點(diǎn)擊數(shù),即每秒鐘發(fā)送的http請(qǐng)求數(shù)量,點(diǎn)擊率越大對(duì)服務(wù)器造成的壓力也越大,對(duì)服務(wù)器的性能要求也越高。

有些人容易混淆點(diǎn)擊率和點(diǎn)擊量的概念,比如我們經(jīng)常會(huì)聽到有人說(shuō)某網(wǎng)站的點(diǎn)擊率是多多萬(wàn),實(shí)際上這里的點(diǎn)擊率指的是點(diǎn)擊量,曝光率或者說(shuō)頁(yè)面瀏覽量。

1.4 吞吐量/吞吐率

吞吐量是指系統(tǒng)處理客戶請(qǐng)求數(shù)量的總和,可以指網(wǎng)絡(luò)上傳輸數(shù)據(jù)包的總和,也可以指業(yè)務(wù)中客戶端與服務(wù)器交互數(shù)據(jù)量的總和。

吞吐率是指單位時(shí)間內(nèi)系統(tǒng)處理客戶請(qǐng)求的數(shù)量,也就是單位時(shí)間內(nèi)的吞吐量。可以從多個(gè)維度衡量吞吐率:①業(yè)務(wù)角度:?jiǎn)挝粫r(shí)間(每秒)的請(qǐng)求數(shù)或頁(yè)面數(shù),即請(qǐng)求數(shù)/秒或頁(yè)面數(shù)/秒;②網(wǎng)絡(luò)角度:?jiǎn)挝粫r(shí)間(每秒)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包大小,即字節(jié)數(shù)/秒等;③系統(tǒng)角度,單位時(shí)間內(nèi)服務(wù)器所承受的壓力,即系統(tǒng)的負(fù)載能力。

吞吐率(或吞吐量)是一種多維度量的性能指標(biāo),它與請(qǐng)求處理所消耗的CPU、內(nèi)存、io和網(wǎng)絡(luò)帶寬都強(qiáng)相關(guān)。

1.5 TPS/QPS

TPS(Transaction Per Second)是指單位時(shí)間(每秒)系統(tǒng)處理的事務(wù)量。事務(wù)可以是用戶自定義的一系列操作或者動(dòng)作的集合,比如“用戶注冊(cè)“事務(wù)是點(diǎn)擊注冊(cè)按鈕,填寫用戶注冊(cè)信息,點(diǎn)擊提交按鈕,以及加載注冊(cè)成功頁(yè)面的動(dòng)作集合。

QPS(Query Per Second)是指單位時(shí)間內(nèi)查詢或訪問服務(wù)器的次數(shù)。

TPS和QPS的區(qū)別在于一個(gè)事務(wù)可以包含多次查詢或訪問服務(wù)器,也可以只查詢或訪問一次服務(wù)器。當(dāng)多次查詢或訪問時(shí),一個(gè)TPS相當(dāng)于多個(gè)QPS;當(dāng)只查詢或訪問一次時(shí),一個(gè)TPS則等價(jià)于一個(gè)QPS。

1.6 PV/UV

PV和UV是衡量web網(wǎng)站性能容量的兩個(gè)重要度量指標(biāo),經(jīng)常用在電子商務(wù)網(wǎng)站領(lǐng)域中用來(lái)衡量網(wǎng)站的活躍度。

PV(Page View)是頁(yè)面的瀏覽量或點(diǎn)擊量,用戶對(duì)系統(tǒng)或者網(wǎng)站任何頁(yè)面的每一次點(diǎn)擊或者訪問都會(huì)被記錄一次瀏覽量或點(diǎn)擊量,對(duì)相同頁(yè)面進(jìn)行多次訪問瀏覽量或點(diǎn)擊量也會(huì)進(jìn)行累計(jì)。

UV(Unique Vistor)是系統(tǒng)或者網(wǎng)站的獨(dú)立訪客,一段時(shí)間內(nèi)相同客戶端(或PC)訪問系統(tǒng)或者網(wǎng)站只會(huì)被記錄一次,連續(xù)重復(fù)訪問或者瀏覽多個(gè)系統(tǒng)頁(yè)面次數(shù)不會(huì)進(jìn)行累計(jì)。

PV和UV按照統(tǒng)計(jì)周期劃分,可以劃分為全天PV、每小時(shí)PV、全天UV和每小時(shí)UV等。在一些數(shù)據(jù)或交易量非常龐大的場(chǎng)景中,比如雙11或618等全民購(gòu)物活動(dòng)時(shí),常常還會(huì)統(tǒng)計(jì)峰值PV和峰值UV。

二 linux服務(wù)器性能指標(biāo)2.1 CPU使用率

CPU使用率是單位時(shí)間內(nèi)服務(wù)器CPU的使用統(tǒng)計(jì),可以用除CPU空閑時(shí)間外其他時(shí)間占總CPU時(shí)間的百分比來(lái)表示,即:CPU使用率=1-CPU空閑時(shí)間/總CPU時(shí)間

命令:#top //top工具間隔3s會(huì)動(dòng)態(tài)滾動(dòng)更新一次數(shù)據(jù)

字段說(shuō)明:

us (user):用戶態(tài)的CPU使用時(shí)間比例,是用戶運(yùn)行程序的真正時(shí)間,它不包括后面的ni時(shí)間;

sy (system): 內(nèi)核態(tài)的CPU使用時(shí)間比例,是操作系統(tǒng)的運(yùn)行時(shí)間,操作系統(tǒng)運(yùn)行時(shí),用戶運(yùn)行程序往往處于等待狀態(tài);

ni (nice): 表示低優(yōu)先級(jí)用戶態(tài)的CPU時(shí)間比例,取值范圍為[-20,19],數(shù)值越大,則優(yōu)先級(jí)越低;

id (idle): 表示空閑的CPU時(shí)間比例,值越大,CPU空閑時(shí)間比例越高,利用率越低;

wa (iowait): 表示處于IO等待狀態(tài)的CPU時(shí)間比例;

hi (hard interrupt): 表示處理硬中斷的CPU時(shí)間比例;

si (soft interrupt): 與hi相反,表示處理軟中斷的CPU時(shí)間比例;

st (steal): 表示當(dāng)前系統(tǒng)運(yùn)行在虛擬機(jī)中被其他虛擬機(jī)占用的CPU時(shí)間比例。

在性能測(cè)試中,系統(tǒng)整體的CPU使用率可以用(1-id)來(lái)計(jì)算。當(dāng)us很高時(shí),說(shuō)明CPU時(shí)間主要消耗在用戶代碼上,可以從用戶代碼角度考慮優(yōu)化性能;當(dāng)sy很高時(shí),說(shuō)明CPU時(shí)間主要消耗在內(nèi)核上,可以從是否系統(tǒng)調(diào)用頻繁、CPU進(jìn)程或線程切換頻繁角度考慮性能的優(yōu)化;當(dāng)wa很高時(shí),說(shuō)明有進(jìn)程在進(jìn)行頻繁的IO操作,可能是磁盤IO或者網(wǎng)絡(luò)IO。

一般情況下,如果%us %sy<=70%,我們可以認(rèn)為系統(tǒng)的運(yùn)行狀態(tài)良好。

2.2 內(nèi)存占用率

Linux的系統(tǒng)內(nèi)存管理機(jī)制遵循內(nèi)存利用率最大化的原則。內(nèi)核會(huì)將空余的內(nèi)存劃分為cached(不屬于free),對(duì)于有頻繁讀取操作的文件或數(shù)據(jù)會(huì)被保存在cached中。因此,對(duì)于linux系統(tǒng)來(lái)說(shuō),可用于分配的內(nèi)存不止free的內(nèi)存,同時(shí)還包括cached的內(nèi)存(其實(shí)還包括buffers的內(nèi)存)。

cached和buffers都屬于緩存,它們的區(qū)別主要在于cached主要用來(lái)緩沖頻繁讀取的文件,它可以直接記憶我們打開的文件內(nèi)容;而buffers主要用來(lái)給塊設(shè)備做的緩沖大小,只記錄文件系統(tǒng)的metadata以及tracking in-flight pages信息,比如存儲(chǔ)目錄里面的內(nèi)容,權(quán)限等。

top工具既可以查看系統(tǒng)CPU使用情況,也可以查看系統(tǒng)內(nèi)存使用信息。

命令:#top

在性能測(cè)試中,經(jīng)常會(huì)用到系統(tǒng)已用內(nèi)存、物理已用內(nèi)存、系統(tǒng)內(nèi)存占用率以及物理內(nèi)存占用率這幾個(gè)指標(biāo),它們的計(jì)算公式如下:

系統(tǒng)已用內(nèi)存MemUsed=MemTotal-MemFree //包含buffers和cached

物理已用內(nèi)存-/ Used= MemTotal-MemFree-MemBuffers-MemCached

系統(tǒng)內(nèi)存占用率MemUsed%=(MemUsed/ MemTotal)*100%

物理內(nèi)存占用率-/ Used%=(-/ Used/ MemTotal)*100%

一般情況下,系統(tǒng)內(nèi)存占用率<=70%,我們可以認(rèn)為系統(tǒng)的內(nèi)存使用情況良好,如果超出則說(shuō)明系統(tǒng)內(nèi)存資源緊張。

2.3 系統(tǒng)平均負(fù)載

當(dāng)發(fā)現(xiàn)系統(tǒng)出現(xiàn)卡斷或者運(yùn)行不順暢時(shí),我們可以通過uptime,top或者w命令來(lái)查看系統(tǒng)的負(fù)載情況。

命令1:#uptime

命令2:#top

命令3:#w

Linux的load average表示系統(tǒng)負(fù)載的平均值,顯示的三個(gè)數(shù)值分別表示1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載情況。這里的平均負(fù)載是指單位時(shí)間內(nèi),系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù),可以簡(jiǎn)單的理解為平均負(fù)載就是系統(tǒng)平均活躍進(jìn)程數(shù)。

其中可運(yùn)行狀態(tài)是指正在使用CPU或者正在等待CPU的進(jìn)程(處于R狀態(tài):Running或者Runnable的進(jìn)程);不可中斷狀態(tài)的進(jìn)程指的是正處于內(nèi)核態(tài)關(guān)鍵流程中的進(jìn)程,處于這個(gè)流程的進(jìn)程是不可打斷的,比如等待硬件設(shè)備的I/O響應(yīng)。

舉個(gè)例子,當(dāng)平均負(fù)載的值為4:

對(duì)于只有1個(gè)CPU的系統(tǒng),意味著平均有3個(gè)進(jìn)程競(jìng)爭(zhēng)不到CPU;

對(duì)于擁有4個(gè)CPU的系統(tǒng),意味著CPU利用率為100%;

對(duì)于擁有8個(gè)CPU的系統(tǒng),意味著CPU利用率為50%,有一半空閑。

可以看出,當(dāng)系統(tǒng)平均負(fù)載的值如果超過系統(tǒng)CPU的數(shù)量時(shí),那么系統(tǒng)有可能會(huì)遇到性能瓶頸,要視具體情況而定。

在性能測(cè)試中,我們也經(jīng)常會(huì)通過比較1min、5min或者15min的值,來(lái)判斷系統(tǒng)平均負(fù)載的變化情況:

如果1min的值大于5min或者15min的值,說(shuō)明負(fù)載在增加;

如果1min的值小于5min或者15min的值,說(shuō)明負(fù)載在減小;

2.4 磁盤IO

Linux服務(wù)器性能除了CPU和內(nèi)存外,還有磁盤IO也是一種常用的性能指標(biāo)。

命令:#iostat –x –k 2 3 //每隔2S輸出磁盤IO的使用情況,共采樣3次

通過ll /dev/mapper命令可以查看dm-x與磁盤邏輯卷的映射關(guān)系;

字段說(shuō)明:

rrqm/s: 每秒對(duì)該設(shè)備的讀請(qǐng)求被合并次數(shù),文件系統(tǒng)會(huì)對(duì)讀取同塊(block)的請(qǐng)求進(jìn)行合并;

wrqm/s: 每秒對(duì)該設(shè)備的寫請(qǐng)求被合并次數(shù);

r/s: 每秒完成的讀次數(shù);

w/s: 每秒完成的寫次數(shù);

rkB/s: 每秒讀數(shù)據(jù)量(kB為單位);

wkB/s: 每秒寫數(shù)據(jù)量(kB為單位);

avgrq-sz:平均每次IO操作的數(shù)據(jù)量(扇區(qū)數(shù)為單位);

avgqu-sz: 平均等待處理的IO請(qǐng)求隊(duì)列長(zhǎng)度;

await: 平均每次IO請(qǐng)求等待時(shí)間(包括等待時(shí)間和處理時(shí)間,毫秒為單位);

svctm: 平均每次IO請(qǐng)求的處理時(shí)間(毫秒為單位);

%util: 采用周期內(nèi)用于IO操作的時(shí)間比率,即IO隊(duì)列非空的時(shí)間比率;

在性能測(cè)試中,我們可以重點(diǎn)關(guān)注iowait%和%util參數(shù)。其中iowait% 表示CPU等待IO時(shí)間占整個(gè)CPU周期的百分比,如果iowait值超過50%,或者明顯大于%system、%user以及%idle,表示IO可能存在問題了;%util表示磁盤忙碌的情況,一般%util<=70%表示該磁盤IO使用狀態(tài)良好。

2.5 linux常用性能命令2.5.1 CPU

命令1: # cat /proc/cpuinfo //獲取CPU詳情

命令2: # top //包含CPU、內(nèi)存使用等情況,常用命令

2.5.2 內(nèi)存

命令1:# free –h

命令2:# top

2.5.3 負(fù)載

命令1:#uptime

命令2:#top

命令3:#w

2.5.4 磁盤

命令1: #fdisk –l //查看硬盤及分區(qū)情況

命令2:# df –h //查看文件系統(tǒng)的磁盤空間使用情況

2.5.5 整體

命令:# vmstat 3 2 //每3秒一次,共2次

如果文章對(duì)你有幫助,記得點(diǎn)贊,收藏,加關(guān)注。會(huì)不定期分享一些干貨哦......

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如有侵權(quán)行為,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

CopyRight ? 外貿(mào)領(lǐng)航 2023 All Rights Reserved.