版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、LoadRunner講解,實例講解性能測試執(zhí)行過程 軟件測試影響力() 沙漠浪 2011-4-25,概述,本次講解的目的: 能夠再經(jīng)過少量的指導(dǎo)就可以直接在實際工作中使用LR進行性能測試; 演示實例: 綜合運維支撐系統(tǒng)用戶工單接單的性能測試 講解的內(nèi)容: 性能測試執(zhí)行過程,從中講解參數(shù)化、集合點、事務(wù)、檢查點、場景設(shè)置、結(jié)果分析,性能測試執(zhí)行過程,性能測試執(zhí)行過程大致分為: 數(shù)據(jù)準備 錄制、編輯及調(diào)試腳本 設(shè)置及調(diào)試場景 執(zhí)行場景 分析結(jié)果,一、數(shù)據(jù)準備,數(shù)據(jù)準備是根據(jù)測試的需要,在執(zhí)行測試之前在被測系統(tǒng)中加入的符合要求的數(shù)據(jù)。 比如,我們在測試接單性能時,需要有待接的工單,那么這些待接的工單
2、就是在數(shù)據(jù)準備階段完成的。,一、數(shù)據(jù)準備,數(shù)據(jù)準備方法 1. 手工 要加的數(shù)據(jù)量比較少的情況下可以手工在系統(tǒng)中加。比如加一個接單的用戶 2. 使用LR或其他自動化測試工具 在數(shù)據(jù)量比較多情況下就要使用工具(LR/QTP等),我們常用的就是LR,錄制一個加數(shù)據(jù)的腳本,反復(fù)迭代運行腳本或在場景中運行腳本,數(shù)據(jù)會生成到系統(tǒng)里面去,這種方法也只適用于插入幾千條數(shù)據(jù),一、數(shù)據(jù)準備,3. 數(shù)據(jù)直接寫入數(shù)據(jù)庫 這種方法在插入數(shù)據(jù)時是最快的,但在準備這些插入數(shù)據(jù)的sql語句(或存儲過程)時卻很麻煩,因為生成一條系統(tǒng)中能流轉(zhuǎn)的數(shù)據(jù)需要很多表關(guān)聯(lián),這個需要開發(fā)人員大力協(xié)助,最理想的是直接要開發(fā)人員提供寫好了的存儲
3、過程,我們只運行,不過一般情況下由開發(fā)人員提供表信息,然后告訴你怎么做,然后自己組裝sql。這種方法適用于數(shù)據(jù)量非常大的情況,二、腳本 錄制腳本,錄制腳本 操作步驟請參見LR的操作手冊,這里說一下需要注意的地方。 1.最好在腳本錄制的過程中加入備注、集合點和事務(wù) 2.在編輯腳本前備份一個原始腳本 3.再錄制一個同樣操作的腳本,用于與剛才錄制的腳本進行對比,查找出哪些需要參數(shù)化值 4.兩個用于進行對比的腳本存放的絕對路徑不要太長,比如桌面,這時將無法比較,二、腳本 插入集合點,插入集合點的目的就是控制所有用戶同時并發(fā)開始執(zhí)行某個動作。 例:測試用戶并發(fā)接單的性能,則把集合點插入到接單動作提交的前
4、面。這時,先到的用戶該集合點的用戶要等后到集合點的用戶,然后一起執(zhí)行提交操作。,二、腳本 插入事務(wù),添加事務(wù)的主要目的就是要得到事務(wù)開始時間和事務(wù)結(jié)束時間之間的間隔時間,即事務(wù)響應(yīng)時間; 我們把關(guān)注的某些動作定義為一個事務(wù),在場景運行時,LR就會自動記錄該事務(wù)的所花的時間; 如果場景是多用戶并發(fā),迭代多次,則LR會給出事務(wù)最大的響應(yīng)時間、最小響應(yīng)時間和平均響應(yīng)時間,我們一般看的是平均響應(yīng)時間; 一個腳本中可以加入多個事務(wù),一個事務(wù)也放到另一個事務(wù)里面;,二、腳本 參數(shù)化,找出需要參數(shù)化的字段 1.打開一個腳本,選擇另一個相同操作步驟的腳本用比較器比較,在比較器中查看兩個腳本不同的地方,腳本中不
5、同的地方用黃色標(biāo)識出來 可能會標(biāo)識出很多不同的地方,但有些地方我們可以不去管它,比如下載的圖片資源,思考時間等,有些地方則是很可能要參數(shù)化的,比如某某ID 或value一串類似隨機字符串,根據(jù)經(jīng)驗初步判斷哪些是需要參數(shù)化的記錄下來。,二、腳本 參數(shù)化,二、腳本 參數(shù)化,從相關(guān)開發(fā)人員那里獲取得到這些值的SQL語句 找開發(fā)人員要sql語句之前,我們必須清楚我們需要什么樣的數(shù)據(jù),比如:接單腳本參數(shù)化我們需要特定人待辦的用戶工單的recordsn字段的值 一般項目經(jīng)理都會告訴你誰開發(fā)哪一塊,測哪塊的程序,找相關(guān)的開發(fā)人員即可,并且他們也會大致告訴你這些表是做什么用的,這些信息是很有用的,以后我們可以
6、自己改sql語句得到更適合我們測試的sql語句。,二、腳本 參數(shù)化,待接單參數(shù)化需要的sql語句如下: select m.clogcode,d.recordsn from svr_pub_da_dispqueue d,org_user o,svr_pub_da_mainqueue m where d.mainsn=m.mainsn and d.repairoper = o.userid (表與表間的關(guān)聯(lián)) and m.business=961300261A9D55CD70029C68FE8C4F4F (工單類型:用戶工單) and cessflag = ACCEPT (過程標(biāo)識:接單
7、) and o.loginname = 張林(當(dāng)前待辦箱:張林) and clogcode Like zl% (附加標(biāo)識:準備數(shù)據(jù)時方便以后自己識別加入的特殊標(biāo)識) Order By clogcode 另:svr_pub_da_dispqueue派工工單處理表,也就是子單的一些信息 svr_pub_da_mainqueue工單主表,也就是主單的信息,張主單包含多張子單,二、腳本 參數(shù)化,參數(shù)化 1.建立參數(shù)化文件*.dat,放入腳本文件夾內(nèi) 2.在PLSQL中根據(jù)sql語句查詢出所得的數(shù)據(jù),拷貝到參數(shù)化文件內(nèi) 3.在腳本中找到要參數(shù)化的字段,對其進行參數(shù)化,引用參數(shù)化文件中的數(shù)據(jù),二、腳本 參
8、數(shù)化,調(diào)試腳本,驗證參數(shù)化是否正確 1.在腳本編輯器中用少量的迭代次數(shù)反復(fù)運行腳本; 2.在場景中用少量并發(fā)數(shù)和迭代數(shù)運行腳本。 參照下面規(guī)則,如果兩種驗證方式都通過,則參數(shù)化成功,否則繼續(xù)調(diào)試腳本。,二、腳本 參數(shù)化,是否參數(shù)化成功規(guī)則: 如果迭代運行通過,并且使用的參數(shù)化值正確,并且被測系統(tǒng)得到的結(jié)果和預(yù)期結(jié)果相同(工單正確流轉(zhuǎn)),則參數(shù)化成功; 如果迭代運行不通過,或者引用的參數(shù)化的值不是預(yù)期的值,或者被測系統(tǒng)中對應(yīng)的工單沒有正確流轉(zhuǎn),則參數(shù)化不成功,此時需要: 1.根據(jù)錯誤提示解決問題;(比如服務(wù)器未連上) 2.檢查參數(shù)化值,取數(shù)據(jù)的方式設(shè)置是否正確,調(diào)整設(shè)置;(比如參數(shù)化值的數(shù)量不夠
9、) 3.檢查sql語句查出來的數(shù)據(jù)是否符合要求,主要是看條件限制是否足夠,調(diào)整sql語句;(比如需要的是某人的待接單,但查得的是所有未歸檔單據(jù)) 4.檢查是否還有需要參數(shù)化的值,需要參數(shù)化的值再進行參數(shù)化(比如有兩個字段需要參數(shù)化,但只對一個字段進行了參數(shù)化) 5.運行腳本,重復(fù)上面的動作,直至參數(shù)化成功為止,二、腳本 檢查點,為什么要加入檢查點 檢查點是檢查腳本運行后,是否真的得到了預(yù)期結(jié)果。 因為曾經(jīng)發(fā)現(xiàn)場景運行后,LR反饋事務(wù)運行成功,但其實沒有真正運行成功,工單沒有流轉(zhuǎn)。雖然我們可以在數(shù)據(jù)庫中查詢工單的狀態(tài),但插入檢查點后,在場景運行的過程中就可以看到事務(wù)運行是否出現(xiàn)了問題,比在數(shù)據(jù)庫
10、中看更加方便;另外,像測試查詢的性能類的腳本,在數(shù)據(jù)庫中是看不到變化的,所以插入檢查點就是非常必要的了。,二、腳本 檢查點,檢查點實例(接單腳本的檢查點) 首先要考慮,在系統(tǒng)中我們手工接單的時候是怎么判斷工單流轉(zhuǎn)是否成功的,是看接單后工單狀態(tài)是否變?yōu)榱恕按貑巍保敲?,我們就以此做為檢查點。 接著要在腳本中找到插入檢查點的正確位置。在錄制接單腳本時,已經(jīng)為設(shè)置檢查點做了準備,在接單完成后又在待辦箱查詢了一次剛才接的工單。檢查點就設(shè)在查詢出的工單那里。,二、腳本 檢查點,檢查點實例(接單腳本的檢查點) 加入檢查點函數(shù): web_reg_find(Text=title=待回單, SaveCount
11、=i, LAST); 檢查當(dāng)前頁面上是否有“Text=title=”待回單”這個字符串,把找到的次數(shù)保存在i這個變量里面,因為這個函數(shù)必須是先注冊再用,所以把上面這段代碼加在查詢前面。 在用戶工單待辦箱頁面上可以看到,查詢出一張待回單工單,頁面上會有兩個待回單的圖標(biāo)標(biāo)識,意味著,i2時,才是查到一張待回單,如果i1,腳本運行也不會報錯,但其實工單并沒有流轉(zhuǎn)到待回單。所以我們要對i值進行判斷,看是否等于2 if (atoi(lr_eval_string(i) =2) lr_output_message(找到2次,操作成功!); else if(atoi(lr_eval_string(i) =1)
12、 lr_error_message(找到1次,操作沒成功!); else if。 上面這段代碼要加在查詢后面,查詢之后才能看到結(jié)果。場景運行時,如果待回單標(biāo)識只找到一次,就會有錯誤報出來,lr_error_message實現(xiàn)。,二、腳本 檢查點,檢查點實例(接單腳本的檢查點) 根據(jù)檢查點函數(shù)收集到的數(shù)值,判斷工單是否流轉(zhuǎn)成功: 在用戶工單待辦箱頁面上可以看到,查詢出一張待回單工單,頁面上會有兩個待回單的圖標(biāo)標(biāo)識,意味著,i2時,才是查到一張待回單,如果i1,腳本運行也不會報錯,但其實工單并沒有流轉(zhuǎn)到待回單。所以我們要對i值進行判斷,看是否等于2 if (atoi(lr_eval_string(
13、i) =2) lr_output_message(找到2次,操作成功!); else if(atoi(lr_eval_string(i) =1) lr_error_message(找到1次,操作沒成功!); else if。 上面這段代碼要加在查詢后面,因為查詢之后才能看到結(jié)果。場景運行過程中,如果待回單標(biāo)識只找到一次,就會有錯誤在場景執(zhí)行界面報出來,由lr_error_message實現(xiàn)。,二、腳本 檢查點,調(diào)試腳本,驗證檢查點是否起作用 至少要用一個驗證反例來驗證檢查點是否真的有效。 比如,更改驗證的字符串標(biāo)識為“待接單”,運行場景查詢同樣的待回單工單出來,看是否報錯; 如果不報錯,說明檢
14、查點沒起作用,要檢查加入的檢查點位置是否正確,語句是否正確,或改用其他檢查方式來設(shè)檢查點; 如果反饋報錯信息“找到1次,操作沒成功!”說明檢查點設(shè)置生效了,可以繼續(xù)往下做。,二、腳本 調(diào)整腳本,在腳本調(diào)試的過程中,我們已經(jīng)執(zhí)行了很多次場景了,在沒有正式測試之前就有可能發(fā)現(xiàn)系統(tǒng)的什么地方比較非常耗時,甚至導(dǎo)致運行不到我們本次測試關(guān)注的地方。在這種情況下,我們可以對那些比較耗時的代碼段專門再加事務(wù),正式測試的過程中也關(guān)注一下這個事務(wù);如果是影響到我們后面運行的代碼段,且屏蔽掉后不影響本次測試的,則先屏蔽掉該代碼段,繼續(xù)后面的測試,但在測試報告中告之該代碼段對應(yīng)的操作性能有問題。,二、腳本 調(diào)整腳本
15、,實例: 原來的系統(tǒng),進入工單查詢界面會默認刷新一次顯示一頁工單,然后才可輸入查詢條件查詢。當(dāng)然錄制根據(jù)條件查詢的腳本也是這個過程。 問題是在基礎(chǔ)數(shù)量很大的情況下,進入工單查詢,默認刷新頁面這個動作基本上完成不了,所以后面的根據(jù)條件來查詢也就測不了。所以最后在腳本中屏蔽掉了默認刷新的代碼,繼續(xù)輸入查詢條件查詢的性能測試。當(dāng)然默認刷新顯示不了工單列表的問題也要告之開發(fā)組。在以后發(fā)布的測試版本中,開發(fā)組針對此問題作了改進,在進入工單查詢界面時,不默認刷新出工單列表,而是讓用戶自己輸入查詢條件,從而避免了上述問題。 至于如何知道某個操作對應(yīng)在腳本中的代碼,就是我在前面錄制腳本中提到的要多寫操作的備注
16、信息,方便查找。,三、場景 場景分類,場景模式的選擇 場景分為手工場景和面向目標(biāo)的場景。 手工場景要達到某個測試目的需要根據(jù)場景每次運行的結(jié)果,需要使用者自己調(diào)整虛擬用戶數(shù),直到達到預(yù)期目標(biāo)。 面向目標(biāo)場景是在場景運行前設(shè)置了目標(biāo)值,LR在運行的過程中自動逐步加載虛擬用戶以達到預(yù)設(shè)的目標(biāo)。 目前我們用的都是手工場景,面向目標(biāo)的場景還沒有仔細研究過,但前不久我試驗了一下,手工場景和面向?qū)ο髨鼍暗贸龅慕Y(jié)果差別還比較大,現(xiàn)在還不知道具體原因,待以后解決。,三、場景 場景設(shè)置,選擇腳本 設(shè)置并發(fā)用戶數(shù) 輸入要使用資源的電腦IP或主機名,連接上 Run-time Settings,設(shè)置迭代次數(shù)、設(shè)置每次
17、迭代的間隔時間、設(shè)置只輸出標(biāo)準日志、忽略思考時間、局域網(wǎng)內(nèi)不使用代理 設(shè)置檢查點有效,三、場景 場景設(shè)置,設(shè)置集合點。 并發(fā)用戶數(shù)多的情況下,選擇第一或第三項,可以讓所有用戶都到達集合點后才開始事務(wù);如果使用默認的第二項,所有正在運行的用戶到達集合點后,就開始運行事務(wù)了,此時可能還有用戶還處在初始化階段,沒有運行,執(zhí)行的并發(fā)數(shù)是沒有到達預(yù)期設(shè)計的; 并發(fā)數(shù)小的情況下,使用哪項都無所謂; 可以適當(dāng)將兩個用戶之間的等待時間設(shè)置大點。順便說一下,關(guān)于這里設(shè)置的超時,是設(shè)置的前后兩個虛擬用戶到達集合點的間隔,不是第一個虛擬用戶與最后一個虛擬用戶到達集合點的時間間隔。,三、場景 場景設(shè)置,設(shè)置登入方式
18、如果并發(fā)用戶數(shù)較大,最好選擇分批登入。如果選擇一次全部登入,有可能在登入被測系統(tǒng)時就運行失敗了,雖然在登入時候并沒有設(shè)置集合點,但登入時間也是相對集中的,壓力較大。,三、場景 場景設(shè)置,選擇自動載入分析,場景運行結(jié)束后會自動載入分析結(jié)果;如果沒有選擇,點工具欄上的“Analyze Results”按鈕也可以載入結(jié)果,三、場景 場景設(shè)置,設(shè)置結(jié)果保存路徑,也可以設(shè)置自動保存結(jié)果,但一般不要選擇自動覆蓋結(jié)果,以免誤操作覆蓋掉以前有用的結(jié)果,三、場景 場景設(shè)置,加入需要監(jiān)控主機及相關(guān)系統(tǒng)資源計數(shù)器 將被測系統(tǒng)的服務(wù)器的操作系統(tǒng)拖入顯示窗口 在窗口中點右鍵,增加一個服務(wù)器的IP,聯(lián)接上該服務(wù)器 選擇關(guān)
19、注的系統(tǒng)資源計數(shù)器,三、場景 場景設(shè)置,加入oracle指標(biāo)計數(shù)器 將oracle拖入顯示窗口,三、場景 場景設(shè)置,連接oracle,其中server name是你本機配置的服務(wù)名,登入用戶可以是system也可以是其他用戶,三、場景 場景設(shè)置,加入關(guān)注的計數(shù)器,注意選擇obiect時選擇第三項,否則得不到數(shù)據(jù)。至于這一項具體的內(nèi)容,介紹一個網(wǎng)址,大家可以去看看: 這里面有一些常用統(tǒng)計的解釋,內(nèi)容較多不在此列出。,三、場景 場景設(shè)置,比如加入physical reads,三、場景 場景執(zhí)行,在場景執(zhí)行的過程中,可以看到執(zhí)行的信息,如果發(fā)現(xiàn)有大量事務(wù)報錯 或 執(zhí)行時間特別長,可以終止本次執(zhí)行;但
20、要根據(jù)報錯信息判斷是否因為系統(tǒng)無法支撐本次并發(fā)數(shù)導(dǎo)致的,如果是,則要減少用戶數(shù)后再次執(zhí)行;如果不是,查找錯誤原因,解決錯誤之后再次執(zhí)行。 對同一類場景,要多執(zhí)行幾次,找出出現(xiàn)次數(shù)較多的那個響應(yīng)時間。 另外,在監(jiān)控linux系統(tǒng)的性能指標(biāo)時,可以用vmstat、iostat命令來獲得一些信息供以后分析。,三、結(jié)果分析 結(jié)果摘要,分析結(jié)果摘要中包括了本次測試結(jié)果大概的信息,我們關(guān)注比較多的有: 執(zhí)行的場景的路徑,保存結(jié)果的路徑,執(zhí)行了多長時間 最大并發(fā)用戶數(shù) 事務(wù)的通過數(shù),失敗數(shù),終止數(shù) 事務(wù)的響應(yīng)時間 返回的http狀態(tài)代碼 ,主要看有沒有錯誤信息(參考附件“返回http代碼狀態(tài)”),三、結(jié)果分
21、析 加入新圖表,加入新圖表,通常有操作系統(tǒng)相關(guān)、數(shù)據(jù)庫相關(guān)、事務(wù)相關(guān)、網(wǎng)頁細分相關(guān),三、結(jié)果分析 事務(wù)分析,查看事務(wù)是否通過及響應(yīng)時間 在事務(wù)摘要中,看要測試的事務(wù)(比如接單事務(wù))是否全部運行通過。如果沒有全部通過,說明在場景運行的過程中出了問題,查找原因;如果全部通過接著查看下面的; 如果加有檢查點的事務(wù),看檢查點事務(wù)是否全部運行成功;如果沒有全部通過,說明在場景運行的過程中出了問題,查找原因;如果全部通過接著查看下面的; 事務(wù)執(zhí)行后可以在數(shù)據(jù)庫中看到相應(yīng)的變化,最好查看數(shù)據(jù)庫里面的記錄的變化內(nèi)容及數(shù)量,是否與前面的事務(wù)執(zhí)行通過數(shù)一致。如果是一致的才算是場景真的執(zhí)行通過了; 事務(wù)全部通過了,
22、它的平均響應(yīng)時間才有意義。查看它的平均響應(yīng)時間是否在我們的要求內(nèi),適當(dāng)增減并發(fā)用戶數(shù)再執(zhí)行。,三、結(jié)果分析 事務(wù)分析,事務(wù)執(zhí)行未通過,考慮: 是否需要更改場景運行的設(shè)置(比如接受HTTP請求響應(yīng)時間默認是120秒超時,如果需要可以改大一點) 負載過大,服務(wù)器的系統(tǒng)資源(CPU、內(nèi)存、磁盤等)不足以支持事務(wù)執(zhí)行;這種情況下,要分析是哪種系統(tǒng)資源不足,然后再分析是硬件瓶頸引起的還是由程序引起的。 負載不大,服務(wù)器所有資源充足,但仍有事務(wù)未運行成功。這種情況主要考慮是否是被測程序的問題。 事務(wù)響應(yīng)時間過長,同上面的第二和第三點,三、結(jié)果分析 獲取常用性能指標(biāo),目前在做性能測試的時候,如果測的是win
23、dows系統(tǒng),一般就只用LR監(jiān)控就可以了,在設(shè)置場景時加入windows相關(guān)的計數(shù)器;如果測試的是linux系統(tǒng),則還要用linux的命令(常用的有vmstat、iostat),因為LR里面包含的linux相關(guān)的計數(shù)器比較少,所以用這些命令做為補充。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)CPU Utilization(CPU利用率) 一般認為,CPU連續(xù)長時間處在95(90)以上,則可能是CPU的瓶頸。 “長時間”究竟定義為多長?以前我認為是5秒,因為經(jīng)常說用戶能忍受的響應(yīng)時間是5秒,連續(xù)5秒CPU都占用95以上,那事務(wù)響應(yīng)時間很有可能就在5秒以上了;后來做了幾次測試之后我發(fā)覺有一點不對,如果
24、拋開用戶能夠承受的事務(wù)響應(yīng)時間,單單來找系統(tǒng)瓶頸時會發(fā)現(xiàn),5秒其實是一個很短的時間?,F(xiàn)在我認為“長時間”只是個相對數(shù),相對于事務(wù)的執(zhí)行時間。 比如說,假如事務(wù)執(zhí)行時間有10秒,而在事務(wù)執(zhí)行的這段時間內(nèi)大部分時間(8秒)CPU占用率都在95以上,那么可以說8秒的時間較長了,可能CPU資源是系統(tǒng)瓶頸;但如果事務(wù)執(zhí)行時間是60秒,其中有連續(xù)10秒鐘CPU占用在95以上,那么這10秒其實算是比較短的了,應(yīng)該是其他問題導(dǎo)致事務(wù)運行花了60秒。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)CPU Utilization(CPU利用率) 在LR的分析結(jié)果中可以看到CPU的平均值,在很多情況下,CPU的平均值都不到9
25、0%,但已經(jīng)可以認為CPU是系統(tǒng)瓶頸了。因為我們在執(zhí)行場景的時間一般不會太長,所以,在場景剛開始運行時CPU的小值對平均值的影響較大,如果場景運行時迭代次數(shù)足夠多,運行時間足夠長則不會存在該問題。在目前的情況下,我們主要還是看事務(wù)處理過程中的CPU的利用率,而不是去看平均值,平均值、最大值、最小值,只能做為參考。 CPU的占用是系統(tǒng)占用和用戶占用之和。一般情況下,系統(tǒng)占用率是很小,5%可能都不到,主要用戶占用多,所以平常我們先看一下是否系統(tǒng)占用是否正常,然后就只看CPU占用的總數(shù)就可以了。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)內(nèi)存相關(guān) 主要看可用內(nèi)存 和 是否頻繁換頁 如果系統(tǒng)可用內(nèi)存變的很小
26、,內(nèi)存可能成為系統(tǒng)瓶頸 如果頁交換頻繁,將嚴重影響系統(tǒng)性能,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)內(nèi)存相關(guān) 可用內(nèi)存 如果是windows系統(tǒng),直接在LR里面看free的值就行了,建議閥值是4M,不能小于4M。如果發(fā)現(xiàn)已經(jīng)接近4M了,說明可用物理內(nèi)存不夠了。 如果是linux系統(tǒng),LR里面沒有可用物理內(nèi)存大小的參數(shù)。需借助于vmstat命令,后面詳述。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)內(nèi)存相關(guān) 頁交換 主要看page-out rate 每秒從物理內(nèi)存中換出到磁盤上頁交換文件的頁數(shù)。 這里可以看到平均值、最大最小值,如果平均值很大,說明有很多的頁交換發(fā)生,內(nèi)存可能不足,需要告訴開發(fā)組查找原因。
27、 至于值為多大才算大,在網(wǎng)上也沒有找到一個確數(shù),可能要靠經(jīng)驗的積累。不過如果是達到幾百,頁交換應(yīng)該是比較頻繁了。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)Average load (平均負載) 在過去的1分鐘內(nèi)運行隊列中的平均進程數(shù)量。 該數(shù)值除以cpu個數(shù)(邏輯個數(shù))小于5,則是在可接受的范圍,否則說明該服務(wù)器負載過重。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)Oracle相關(guān) SELECT name,value FROM V$sysstat WHERE name=redo log space request; 此處value的值應(yīng)接近于0,否則,應(yīng)增大初始化參數(shù)文件的Log_buffers的值 通
28、過查詢V$sysstat表判定redo log (重做日志)文件緩沖區(qū)是否足夠。 實際測試過程中,只需要在場景中添加“redo log space request ”這個計數(shù)器即可。,三、結(jié)果分析 常用指標(biāo)分析,LR指標(biāo)數(shù)據(jù)庫緩沖命中率: 命中率=1-physical reads/(dbblock gets+consistent gets) 該值要在90以上,如果小于90,則要考慮增加data buffer(數(shù)據(jù)緩沖區(qū))的大小,三、結(jié)果分析 常用指標(biāo)分析,對linux系統(tǒng)性能的監(jiān)控和分析,用LR關(guān)注的比較少,主要用的是vmstat 和 iostat命令。 vmstat 對系統(tǒng)的進程情況、內(nèi)存使
29、用情況、交換頁和 I/O 塊使用情況、中斷以及 CPU 使用情況進行統(tǒng)計并報告相應(yīng)的信息。第一個顯示內(nèi)容指出了計算機重啟至今的平均使用情況。后面的每一行信息是按 延時定期地顯示系統(tǒng)的各部分信息。進程信息和內(nèi)存信息都是即時產(chǎn)生的。 iostat也包括了CPU的使用情況,不過它的主要特點是匯報磁盤活動的情況。如果用vmstat命令發(fā)現(xiàn)問題可能與磁盤相關(guān),則再用iostat命令來進一步分析磁盤活動。,三、結(jié)果分析 常用指標(biāo)分析,Vmstat命令 roottest2 # vmstat 1 procs -memory- -swap- -io-system- cpu r b swpd free buff
30、cache si so bi bo in cs us sy id wa 對上面我們關(guān)注的指標(biāo)的分析: r:進程等待隊列長度,閥值是cpu個數(shù)*4,這里的cpu個數(shù)指的是邏輯cpu的個數(shù)( cat /proc/cpuinfo可以看到)。 id:CPU的空閑時間。粗略的來看,反過來就是占用時間。,三、結(jié)果分析 常用指標(biāo)分析,Vmstat命令相關(guān)指標(biāo)的分析 從r和id值看CPU的使用情況。 如果r值長時間很大、id值長時間很小,(長時間有很多進程等待,且cpu占用長時間很大),說明CPU資源有可能不足; 如果r值長時間很大,id值只是偶爾很小,(長時間有很多進程等待,但cpu大部分時間空閑),說明應(yīng)
31、該不是cpu硬件處理能力的問題,要找程序的原因; 如果r值偶爾很大、id值長時間很小, (偶爾有較多的進程等待處理,但大部分不是,但cpu占用長時間很大),雖然CPU占用很厲害,但只要有進程過來基本上馬上就能處理,至少目前不能說明cpu資源不足。在實際測試的過程中也可以看到這種情況,但事務(wù)響應(yīng)較快。,三、結(jié)果分析 常用指標(biāo)分析,Vmstat命令相關(guān)指標(biāo)的分析 free: 空閑的內(nèi)存,單位KB buff: 被用來做為緩存的內(nèi)存數(shù),單位:KB cache:被用來做為cache的內(nèi)存數(shù),單位:KB vmstat得到的free的值與windows系統(tǒng)的free值不同,不是可用內(nèi)存,是自由內(nèi)存,就是還沒有被使用過的內(nèi)存;linux的內(nèi)存管理機制認為,用戶可用的內(nèi)存freebuffcache,所以單看free值是沒有意義的。經(jīng)常會看到free值很小,只有23M,但實際可用物理內(nèi)存要大的多。,三、結(jié)果分析 常用指標(biāo)分析,Vmstat命令相關(guān)指標(biāo)的分析 swpd: 虛擬內(nèi)存使用情況,單位:KB si: 從磁盤交換到內(nèi)存的交換頁數(shù)量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特殊場合服裝租賃采購合同3篇
- 2024年中國甜菊葉市場調(diào)查研究報告
- 2024年中國生脈飲口服液市場調(diào)查研究報告
- 2025年農(nóng)村房屋贈與及土地流轉(zhuǎn)合同
- 2025年度教育資源共享合作協(xié)議范文3篇
- 2024年中國活細胞膠原彈力粉底市場調(diào)查研究報告
- 2024年中國汽車改裝式液壓升降平臺市場調(diào)查研究報告
- 2024年中國比伐盧定市場調(diào)查研究報告
- 2024年江陰市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 《Sn基軟釬料合金的晶須快速生長行為和抑制方法研究》
- 2024-2030年中國高密度聚乙烯管道行業(yè)發(fā)展展望與投資策略建議報告
- 2024-2030年中國醋酸乙烯行業(yè)運營狀況與發(fā)展風(fēng)險評估報告
- 企業(yè)文化塑造與員工激勵方案
- 2024年01月22504學(xué)前兒童科學(xué)教育活動指導(dǎo)期末試題答案
- 2023-2024學(xué)年貴州省遵義市新蒲新區(qū)八年級(上)期末數(shù)學(xué)試卷(含答案)
- 多發(fā)性神經(jīng)病護理
- 【MOOC】線性代數(shù)-浙江大學(xué) 中國大學(xué)慕課MOOC答案
- 開門紅包費用申請
- 區(qū)塊鏈原理與實踐全套完整教學(xué)課件
- 運動神經(jīng)元病小講課
- 工會的財務(wù)管理制度〔13篇〕
評論
0/150
提交評論