性能测试概念指标
性能測試:
并發(fā)測試,壓力測試,負載測試,容量測試,疲勞測試
?
數據庫壓測:https://www.cnblogs.com/hally/p/8360637.html
?
并發(fā)測試:探測系統(tǒng)業(yè)務并發(fā)處理能力,同一秒能處理多少請求
壓力測試:一定時間段內,維持一定數量用戶的請求,系統(tǒng)未出錯,說明系統(tǒng)抗壓能力正常
負載測試:探測系統(tǒng)的瓶頸
容量測試:往數據庫中填充一定預估的數據量,再進行并發(fā)測試或者壓測測試,主要看系統(tǒng)能支撐到多大的業(yè)務量
疲勞測試:一般指系統(tǒng)持續(xù)至少8小時以上的高并發(fā)測試
?
性能測試的指標:
1,服務器性能指標:
CPU
內存
磁盤I/O帶寬
網絡I/O帶寬
2,應用程序
?
性能測試評估的標準
CPU--->user%+sys%<70%(好),70%<user%+sys%<=85%(壞),90%<=user%+sys%(糟糕)
內存-->Swap in(si)=0,Swap out(so)=0(好),Per CPU with 10 page/s(壞),
More Swap in & swap out(糟糕)
磁盤--->iowait%<20%(良好),20%<iowait%<=35%(壞),iowait%>=50%(糟糕)
?
其中:%user:表示CPU處在用戶模式下的時間百分比
?%sys: ?表示CPU處在系統(tǒng)模式下的時間百分比
?%iowait:表示CPU等待輸入輸出完成時間的百分比
?swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAM
?swap out:即so,表示虛擬內存的頁導出,即從RAM交換到SWAP DISK
?
系統(tǒng)性能分析工具
圖形化監(jiān)控:spotlight(mysql,linux)
命令行監(jiān)控:Vmstat,sar,iostat,netstat,free,ps,top
常用組合方式:用vmstat,sar,iostat檢測是否是cpu瓶頸
?用free,vmstat檢測是否是內存瓶頸
?用iostat檢測是否是磁盤I/O瓶頸
?用netstat檢測是否是網絡帶寬瓶頸
linux 性能評估與優(yōu)化
1,系統(tǒng)整體性能評估(uptime命令)
執(zhí)行結果:19:35:14 up ?4:40, ?5 users, ?load average: 0.00, 0.00, 0.00
PS:load average這個值:這三個值得大小一般不能大于系統(tǒng)CPU的個數,如:輸出系統(tǒng)
中有8個CPU,如果load average的三個值長期大于8時,說明CPU很繁忙,負載值很高
可能會影響系統(tǒng)性能,但是偶爾大于8時,不用擔心,一般不會影響系統(tǒng)性能,相反,如果
load average的輸出值小于cpu個數,則表示cpu還有空閑的時間片,
如:本例子中cpu時非常空閑的
?
2,CPU性能評估
(1)利用vmstat命令監(jiān)控系統(tǒng)cpu
該命令可以顯示關于系統(tǒng)的各種資源之間相關性能的簡要信息,我們主要用它來看cpu的負載
ps: ?
-----》(Procs)
r列表示運行和等待cpu時間片的進程數,這個值如果長期大于系統(tǒng)Cpu的個數,說明
cpu不足,需要增加cpu
b列表示在等待資源的進程數,如正在等待I/O,或者內存交換等
? ? -----> (cpu)
us列顯示了用戶進程消耗的cpu時間百分比。sy的值較高時,說明內核消耗的cpu資源很多
us+sy的參考值為80%,如果us+sy的值大于80%說明可能存在cpu資源不足
(2)利用sar命令監(jiān)控系統(tǒng)cpu
sar功能很強大,可以對系統(tǒng)的每個方面進行單獨的統(tǒng)計,但是使用sar命令會增加
系統(tǒng)的開銷,不過這些開銷是可以評估的,對系統(tǒng)的統(tǒng)計結果影響不大
ps:%user列顯示了用戶進程消耗的cpu時間百分比
%nice 列表示了運行正常進程所消耗的cpu時間百分比
%system列顯示了系統(tǒng)進程消耗的cpu時間百分比
%iowait列顯示了IO等待所占用的CPU時間百分比
%steal列顯示了在內存相對緊張的環(huán)境下pagein強制對不同頁面進行的steal操作
%idle列顯示了cpu處在空閑狀態(tài)的時間百分比
問題:
1,你是否遇到過系統(tǒng)CPU整體利用率不到,而應用緩慢現象?
在一個多cpu的系統(tǒng)中,如果程序使用了單線程,會出現這么個情況
cpu的整體使用率不高,但是系統(tǒng)應用響應很緩慢,這個可能就是由于
程序使用了單線程導致的,單線程只能使用一個cpu,導致整單個cpu的
占用率為100%,無法處理其他請求,而其他的cpu卻閑置,這就導致了整體
CPU使用率不高,而應用程序很緩慢的原因
?
3,內存性能評估
(1)利用free指令監(jiān)控內存
free是監(jiān)控linux內存使用狀況的最常用指令
ps:一般有這樣一個驗證公式:應用程序可用內存/系統(tǒng)物理內存>70%時
表示系統(tǒng)內存資源非常充足,不影響系統(tǒng)性能,應用程序可用內存/系統(tǒng)
物理內存<20%,表示系統(tǒng)內存資源緊缺,需要增加系統(tǒng)內存,20%<應用程序
可能內存/系統(tǒng)物理內存<70%,表示系統(tǒng)內存資源基本能滿足應用需求,暫時
不影響系統(tǒng)性能
(2)利用vmstat命令監(jiān)控內存
(memory):swpd列表示切換到內存交換區(qū)的內存數量(以k為單位)
如果swpd的值不為0,或者比較大,只要si,so的值長期為0,這種情況一般下
不用擔心,不會影響系統(tǒng)性能
free列表示當前空閑的物理內存數量(以k為單位)
buff列表表示buffers cache的內存數量,一般對塊設備的讀寫才需要緩沖
cache列表示page cached的內存數量,一般作為文件系統(tǒng)cached
頻繁訪問文件會被cached,如果cache的值比較大,說明cached的文件數量較多
如果此時IO中比較小,說明文件系統(tǒng)效率比較好
(swap):si列表示由磁盤調入內存,也就是內存進入內存交換區(qū)的數量
? ? ?so列表示由內存調用磁盤,也就是內存交換區(qū)進入內存的數量
?一般情況下:si,so的值為0,如果長期不為0,則系統(tǒng)內存不足
4,磁盤I/O性能評估
(1)硬盤存儲基礎
利用sar評估磁盤性能
通過sar -d組合命令,可以對系統(tǒng)的磁盤IO做一個基本的統(tǒng)計
ps:關注幾個參數:
await:表示平均每次設備I/O操作的等待時間(以毫秒為單位)
svctm: 表示平均每次設備I/O操作的服務時間(以毫秒為單位)
%util:表示一秒中有百分之幾的時間用戶I/O操作。
對于磁盤IO性能,一般如下評判標準:
正常情況下svctm應該是小于await值,而svctm得大小和磁盤性能有關
,cpu,內存得負載也會對svctm得值造成影響,過多得請求也會間接得導致
svctm值得增加
?
await值得大小一般取決于svctm得值和I/O隊列長度以及I/O請求模式。如果
svctm得值與await得很近,表示幾乎沒有I/O等待,磁盤性能很好,如果await
得值遠高于svctm得值,則表示I/O隊列等待太長,系統(tǒng)上運行得應用將變慢
此時可以通過更換更快得硬盤來解決問題
?
%util項得值也是衡量磁盤I/O得一個重要指標,如果%util接近100%,表示磁盤產生得
I/O請求太多,I/O系統(tǒng)已經滿負荷在工作了,表示磁盤可能存在瓶頸
5,網絡性能評估
(1)通過ping檢測網絡得連通性
(2)通過netstat -i組合檢測網絡得接口狀況
(3)通過netstat -r組合檢測系統(tǒng)得路由表信息
(4)通過sar -n組合顯示系統(tǒng)得網絡運行狀態(tài)
?
吞吐量
點擊率
?
性能測試執(zhí)行概念:
用戶數===>線程數
集合點===>設定用戶數,湊夠數量之后,同一時間向服務器發(fā)送請求
loadrunner--->還有另外一種集合點方式:湊夠所有的用戶,同一時間向服務器發(fā)送請求
TPS:是TransactionsPerSecond的縮寫,也就是事務數/秒。它是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程。客戶機在發(fā)送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數
預估TPS值:
場景:年放款量4000億,平均每筆2000元,總共放款次數4000億/2000=2000萬。TPS=2000萬/365/24/3600=6.34/s:表示每秒處理6.34個放款請求
?
QPS:Queries Per Second意思是“每秒查詢率”,是一臺服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規(guī)定時間內所處理流量多少的衡量標準
預估值QPS:
2000萬*10=2億(10張表的總和)
QPS = 2000萬/3s=667萬/s(數據庫單表查詢速度667萬/s)
?
理解如下:
1、Tps即每秒處理事務數,包括了
1)用戶請求服務器
2)服務器自己的內部處理
3)服務器返回給用戶
這三個過程,每秒能夠完成N個這三個過程,Tps也就是3;
2、Qps基本類似于Tps,但是不同的是,對于一個頁面的一次訪問,形成一個Tps;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“Qps”之中。
?
軟件性能的幾個主要術語
?
1、響應時間:對請求作出響應所須要的時間
?
網絡傳輸時間:N1+N2+N3+N4
?
應用server處理時間:A1+A3
?
數據庫server處理時間:A2
?
響應時間=N1+N2+N3+N4+A1+A3+A2
?
性能測試的流程:
1,調研
2,出測試方案
3,編寫測試腳本
4,調試測試腳本
5,基準壓測
6,并發(fā)測試或者壓力測試(三輪)
7,負載測試(三輪)
8,疲勞測試
9,輸出測試報告并給出優(yōu)化建議
?
?
壓測的技術點:確定壓測方案(直接壓測,階梯壓測)
?設置集合點
?事務
?檢查點
?監(jiān)控
?減壓
?
?
?
?
?
?
服務開啟(Tomcat、數據庫、Redis)
注意藍色部分
1、?添加線程組
?
2、?添加http請求
?
?
3、?添加查看結果樹
?
?
?
4、?在http請求中輸入服務器名稱,端口、路徑、參數
?
?
5、?運行,查看結果
?
?
6、?添加http請求默認值
?
?
?
7、?在每個單個接口下面添加響應斷言
斷言的內容就是你的預期結果----驗證結果
?
?
?
?
?
?
?
?
8添加正則表達式------關聯
?
?
要求:
所要提取的內容
先找前面在找后面
?
?
?
9、?關聯數據
?
?
?
10、?參數化----CSV文件、數據庫
CSV文件
?
?
先創(chuàng)建一個CSV文件
?
?
?
?
11、?調取CSV文件內參數
?
?
數據庫:
?
?
?
?
?
?
?
?
?
?
?
?
12、?壓力測試
?
?
?
?
?
?
?
?
導出測試報告:
配置jmeter環(huán)境變量:添加JMETER_HOME=D:\apache-jmeter-4.0
Path中添加%JMETER_HOME%\bin
?
接口測試報告生成命令?
jmeter -n -t source.jmx -l result.jtl -e -o /tmp/ResultRepor
???????????腳本名稱 ??生成HTML格式 ??報告路徑
jmeter -n -t D:\jmeter\gg.jmx -l result.jtl -e -o D:\aa
?
?
轉載于:https://www.cnblogs.com/wyl-520/p/9187977.html
總結
- 上一篇: 就字成语开头的成语有哪些啊?
- 下一篇: ARM Linux 基于S3C2451的