性能測試:
併發測試,壓力測試,負載測試,容量測試,疲勞測試html
數據庫壓測:https://www.cnblogs.com/hally/p/8360637.html
併發測試:探測系統業務併發處理能力,同一秒能處理多少請求
壓力測試:必定時間段內,維持必定數量用戶的請求,系統未出錯,說明系統抗壓能力正常
負載測試:探測系統的瓶頸
容量測試:往數據庫中填充必定預估的數據量,再進行併發測試或者壓測測試,主要看系統能支撐到多大的業務量
疲勞測試:通常指系統持續至少8小時以上的高併發測試mysql
性能測試的指標:
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處在系統模式下的時間百分比
%iowait:表示CPU等待輸入輸出完成時間的百分比
swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAM
swap out:即so,表示虛擬內存的頁導出,即從RAM交換到SWAP DISK
系統性能分析工具
圖形化監控:spotlight(mysql,linux)
命令行監控:Vmstat,sar,iostat,netstat,free,ps,top
經常使用組合方式:用vmstat,sar,iostat檢測是不是cpu瓶頸
用free,vmstat檢測是不是內存瓶頸
用iostat檢測是不是磁盤I/O瓶頸
用netstat檢測是不是網絡帶寬瓶頸
linux 性能評估與優化
1,系統總體性能評估(uptime命令)
執行結果:19:35:14 up 4:40, 5 users, load average: 0.00, 0.00, 0.00
PS:load average這個值:這三個值得大小通常不能大於系統CPU的個數,如:輸出系統
中有8個CPU,若是load average的三個值長期大於8時,說明CPU很繁忙,負載值很高
可能會影響系統性能,可是偶爾大於8時,不用擔憂,通常不會影響系統性能,相反,若是
load average的輸出值小於cpu個數,則表示cpu還有空閒的時間片,
如:本例子中cpu時很是空閒的
2,CPU性能評估
(1)利用vmstat命令監控系統cpu
該命令能夠顯示關於系統的各類資源之間相關性能的簡要信息,咱們主要用它來看cpu的負載
ps:
-----》(Procs)
r列表示運行和等待cpu時間片的進程數,這個值若是長期大於系統Cpu的個數,說明
cpu不足,須要增長cpu
b列表示在等待資源的進程數,如正在等待I/O,或者內存交換等
-----> (cpu)
us列顯示了用戶進程消耗的cpu時間百分比。sy的值較高時,說明內核消耗的cpu資源不少
us+sy的參考值爲80%,若是us+sy的值大於80%說明可能存在cpu資源不足
(2)利用sar命令監控系統cpu
sar功能很強大,能夠對系統的每一個方面進行單獨的統計,可是使用sar命令會增長
系統的開銷,不過這些開銷是能夠評估的,對系統的統計結果影響不大
ps:%user列顯示了用戶進程消耗的cpu時間百分比
%nice 列表示了運行正常進程所消耗的cpu時間百分比
%system列顯示了系統進程消耗的cpu時間百分比
%iowait列顯示了IO等待所佔用的CPU時間百分比
%steal列顯示了在內存相對緊張的環境下pagein強制對不一樣頁面進行的steal操做
%idle列顯示了cpu處在空閒狀態的時間百分比
問題:
1,你是否遇到過系統CPU總體利用率不到,而應用緩慢現象?
在一個多cpu的系統中,若是程序使用了單線程,會出現這麼個狀況
cpu的總體使用率不高,可是系統應用響應很緩慢,這個可能就是因爲
程序使用了單線程致使的,單線程只能使用一個cpu,致使整單個cpu的
佔用率爲100%,沒法處理其餘請求,而其餘的cpu卻閒置,這就致使了總體
CPU使用率不高,而應用程序很緩慢的緣由
3,內存性能評估
(1)利用free指令監控內存
free是監控linux內存使用情況的最經常使用指令
ps:通常有這樣一個驗證公式:應用程序可用內存/系統物理內存>70%時
表示系統內存資源很是充足,不影響系統性能,應用程序可用內存/系統
物理內存<20%,表示系統內存資源緊缺,須要增長系統內存,20%<應用程序
可能內存/系統物理內存<70%,表示系統內存資源基本能知足應用需求,暫時
不影響系統性能
(2)利用vmstat命令監控內存
(memory):swpd列表示切換到內存交換區的內存數量(以k爲單位)
若是swpd的值不爲0,或者比較大,只要si,so的值長期爲0,這種狀況通常下
不用擔憂,不會影響系統性能
free列表示當前空閒的物理內存數量(以k爲單位)
buff列表表示buffers cache的內存數量,通常對塊設備的讀寫才須要緩衝
cache列表示page cached的內存數量,通常做爲文件系統cached
頻繁訪問文件會被cached,若是cache的值比較大,說明cached的文件數量較多
若是此時IO中比較小,說明文件系統效率比較好
(swap):si列表示由磁盤調入內存,也就是內存進入內存交換區的數量
so列表示由內存調用磁盤,也就是內存交換區進入內存的數量
通常狀況下:si,so的值爲0,若是長期不爲0,則系統內存不足
4,磁盤I/O性能評估
(1)硬盤存儲基礎
利用sar評估磁盤性能
經過sar -d組合命令,能夠對系統的磁盤IO作一個基本的統計
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隊列等待太長,系統上運行得應用將變慢
此時能夠經過更換更快得硬盤來解決問題
%util項得值也是衡量磁盤I/O得一個重要指標,若是%util接近100%,表示磁盤產生得
I/O請求太多,I/O系統已經滿負荷在工做了,表示磁盤可能存在瓶頸
5,網絡性能評估
(1)經過ping檢測網絡得連通性
(2)經過netstat -i組合檢測網絡得接口情況
(3)經過netstat -r組合檢測系統得路由表信息
(4)經過sar -n組合顯示系統得網絡運行狀態
吞吐量
點擊率
性能測試執行概念:
用戶數===>線程數
集合點===>設定用戶數,湊夠數量以後,同一時間向服務器發送請求
loadrunner--->還有另一種集合點方式:湊夠全部的用戶,同一時間向服務器發送請求
TPS:是TransactionsPerSecond的縮寫,也就是事務數/秒。它是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發送請求而後服務器作出反應的過程。客戶機在發送請求時開始計時,收到服務器響應後結束計時,以此來計算使用的時間和完成的事務個數
預估TPS值:
場景:年放款量4000億,平均每筆2000元,總共放款次數4000億/2000=2000萬。TPS=2000萬/365/24/3600=6.34/s:表示每秒處理6.34個放款請求linux
QPS:Queries Per Second意思是「每秒查詢率」,是一臺服務器每秒可以相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準
預估值QPS:
2000萬*10=2億(10張表的總和)
QPS = 2000萬/3s=667萬/s(數據庫單表查詢速度667萬/s)ios
理解以下:
一、Tps即每秒處理事務數,包括了
1)用戶請求服務器
2)服務器本身的內部處理
3)服務器返回給用戶
這三個過程,每秒可以完成N個這三個過程,Tps也就是3;
二、Qps基本相似於Tps,可是不一樣的是,對於一個頁面的一次訪問,造成一個Tps;但一次頁面請求,可能產生屢次對服務器的請求,服務器對這些請求,就可計入「Qps」之中。sql
軟件性能的幾個主要術語數據庫
一、響應時間:對請求做出響應所需要的時間服務器
網絡傳輸時間:N1+N2+N3+N4網絡
應用server處理時間:A1+A3併發
數據庫server處理時間:A2高併發
響應時間=N1+N2+N3+N4+A1+A3+A2
性能測試的流程:
1,調研
2,出測試方案
3,編寫測試腳本
4,調試測試腳本
5,基準壓測
6,併發測試或者壓力測試(三輪)
7,負載測試(三輪)
8,疲勞測試
9,輸出測試報告並給出優化建議
壓測的技術點:肯定壓測方案(直接壓測,階梯壓測) 設置集合點 事務 檢查點 監控 減壓