版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、性能測試之問題定位分析主講人:唐曉文培訓(xùn)大綱 性能測試基礎(chǔ)知識回顧 性能測試加壓各階段 性能問題排查方法 性能測試常見問題 案例講解:能耗監(jiān)控系統(tǒng) 其他:性能測試思維誤區(qū) 其他:性能測試工程師要具備的技能 說明:為方便解說此次培訓(xùn)所有例子均為單機(jī)web項目http+java+Tomcat+Mysql結(jié)構(gòu)知識回顧:Http請求瀏覽器一次請求的執(zhí)行過程:1、瀏覽器(查詢DNS)解析出域名IP地址和端口號。N12、瀏覽器發(fā)起到該IP地址端口的連接,3次握手建立連接。N13、瀏覽器發(fā)送一條http報文到服務(wù)器端。N14、服務(wù)器端接收到報文后根據(jù)路徑參數(shù)執(zhí)行相應(yīng)程序,程序連接數(shù)據(jù)庫獲取數(shù)據(jù),組裝成響應(yīng)報
2、文內(nèi)容,發(fā)送給瀏覽器。N2+N3+N45、瀏覽器獲得服務(wù)器傳回的響應(yīng)報文加載展現(xiàn)。!6、瀏覽器邊加載邊解析html頁面文件請求獲取其他資源。7、服務(wù)器相應(yīng)返回其他資源。8、瀏覽器解析展現(xiàn)。9、瀏覽器關(guān)閉連接。知識回顧:了解工具準(zhǔn)確模擬場景 Jmeter的幾個關(guān)鍵參數(shù): 1)線程組的Ramp-up Period 2)Http采樣器的Use KeepAlive 3)從HTML文件獲取內(nèi)含的資源 4)緩存HTTP Cache Manager 5)設(shè)置集合點Synchronizing Timer 6)定時器(思考時間) 7)參數(shù)化性能測試加壓各階段一個正常的系統(tǒng)在不斷加壓的過程,應(yīng)該經(jīng)歷下面幾個階段:
3、第一第一階段:階段:并發(fā)用戶逐漸增加,系統(tǒng)的TPS(每秒處理事務(wù)筆數(shù))逐步增大,直到達(dá)到最大值,這一階段事務(wù)的響應(yīng)時間不會有太大變化,會非常穩(wěn)定;第二第二階段:階段:并發(fā)用戶繼續(xù)增加,TPS基本維持在最大值不變,但響應(yīng)時間將會逐步變長。第三第三階段:階段:并發(fā)用戶繼續(xù)增加,TPS將會有少量下降(20%以內(nèi)),但是決不能快速急劇下降,響應(yīng)時間仍會逐步變長。本階段可以拒絕服務(wù),但是不能宕機(jī)、報錯。加壓完成后,所有占用的CPU/內(nèi)存/IO資源均得到釋放?!竞螘r停止加壓何時停止加壓】!1、加壓到程序報錯、響應(yīng)時間太長、資源占用過高、宕機(jī)。2、加壓達(dá)到單機(jī)最大極限請求被拒絕是可以接受的。 (聯(lián)機(jī)系統(tǒng)To
4、mcat單機(jī)默認(rèn)配置600-800并發(fā))性能問題排查方法 Ping網(wǎng)絡(luò)速度,查看各服務(wù)器資源情況。 排查單次訪問執(zhí)行是否存在性能問題FireBug。 響應(yīng)時間過長如何排查?先分析響應(yīng)時間,再按網(wǎng)速-內(nèi)容大小-數(shù)據(jù)庫-程序報錯-業(yè)務(wù)處理邏輯順序排查。涉及到第三方接口服務(wù):Mock第三方接口再測。 機(jī)器負(fù)載過高如何排查?先定位問題范圍再細(xì)查: 1)應(yīng)用服務(wù)器:查看連接數(shù)、查看服務(wù)器日志、查看業(yè)務(wù)處理邏輯、監(jiān)控JVM運行(jvisualvm.exe) 2)數(shù)據(jù)庫:查看連接數(shù)、抓出最耗時SQL、Explain分析SQL語句、優(yōu)化SQL/索引。性能問題排查使用到的工具 查看監(jiān)控tomcat性能:jvis
5、ualvm.exe或自帶監(jiān)控 查看監(jiān)控IIS連接數(shù):運行perfmon.msc,添加計數(shù)器Web Service里的Current Connection 查看mysql數(shù)據(jù)庫運行情況:SHOW PROCESSLIST 查看mysql數(shù)據(jù)庫連接情況: show status like Threads%; 找出mysql最慢sql:開啟慢查詢?nèi)罩?Oracle查找最近執(zhí)行過的語句:select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc; 分析sql執(zhí)行計劃:explain sql語句性能問題排查方法論總結(jié)自底向上的分析方法:即從硬件&a
6、mp;網(wǎng)絡(luò)-操作系統(tǒng)-數(shù)據(jù)庫-應(yīng)用程序-業(yè)務(wù)需求邏輯。先仔細(xì)檢查硬件、網(wǎng)絡(luò)層面相對簡單的問題,再深入到系統(tǒng)軟件和應(yīng)用軟件相對復(fù)雜的領(lǐng)域。問題實踐 1、能耗監(jiān)控平臺單次查詢電表歷史讀數(shù)響應(yīng)很慢 2、加壓到500并發(fā)時應(yīng)用程序cpu占用率10%,數(shù)據(jù)庫cpu占用率100% 3、大并發(fā)下負(fù)載均衡雙機(jī)部署web網(wǎng)站訪問很慢怎么測?怎么排查?可能的問題有哪些?常見的性能問題有哪些?響應(yīng)時間過長Cpu占用率100%內(nèi)存占用率100%程序掛了測試腳本運行報錯了常見性能問題 數(shù)據(jù)庫:SQL執(zhí)行耗時耗資源、無索引。 程序:代碼運行慢、拋異常、內(nèi)存溢出。 中間件配置:線程池設(shè)置過小、內(nèi)存設(shè)置過小。 網(wǎng)絡(luò):交換機(jī)、
7、防火墻、內(nèi)外網(wǎng)。 硬件:存儲設(shè)備、機(jī)器硬件問題。70%的問題來自于數(shù)據(jù)庫的問題來自于數(shù)據(jù)庫20%來自于程序本身來自于程序本身10%來自于配置優(yōu)化來自于配置優(yōu)化案例講解:能耗監(jiān)控系統(tǒng)案例講解:測試需求分析測試策略 負(fù)載測試 穩(wěn)定性測試 測試對象 采用何種技術(shù)、協(xié)議、工具 測試對象的業(yè)務(wù)邏輯 測試目的、指標(biāo) 性能驗收測試 平臺2000并發(fā)、10萬臺設(shè)備 重點測試對象、優(yōu)先級 大數(shù)據(jù)測試 案例講解:發(fā)現(xiàn)的問題 1、tomcat線程池配置最大連接數(shù)100 2、Mysql數(shù)據(jù)庫連接池連接數(shù)最大30 3、sql語句優(yōu)化索引問題 4、程序處理速度問題(批量寫數(shù)據(jù)庫問題)Sql/索引優(yōu)化相關(guān)知識當(dāng)且僅當(dāng)SQL
8、語句包含where子句的時候觸發(fā)針對可選性高的列建索引多表連接注意在被驅(qū)動表連接字段建索引(小結(jié)果表驅(qū)動大結(jié)果表)復(fù)合索引如何生效:前綴性、按可選性高低排列順序、模糊查詢右側(cè)列失效不要把索引列套入函數(shù)或表達(dá)式、或使用函數(shù)轉(zhuǎn)換數(shù)據(jù)類型大篇幅的字段搜索一個詞需要建全文檢索索引才有效JOIN 查詢不同類型字段無法使用索引,如果是string類型還必須是相同的字符集如果Mysql Explain你看到以下現(xiàn)象,請優(yōu)化: 1)出現(xiàn)了Using temporary使用到了臨時表,groupby/orderby常用到 2)rows過多或者幾乎是全表的記錄數(shù)全表掃描 3)key 是 (NULL)無索引 4)p
9、ossible_keys 出現(xiàn)過多待選索引過多減少不必要的排序group by,order by等數(shù)據(jù)類型盡量小而確定:INT、Enum字段盡可能的使用Not Null相同的查詢語句盡量使用變量避免每次都解析帶查詢的增刪改操作會鎖表案例講解:性能測試結(jié)果案例講解:存在的問題 分布式系統(tǒng)沒有所有程序同時持續(xù)跑一遍。 Redis緩存的數(shù)據(jù)讀寫正確性沒有詳細(xì)驗證。 監(jiān)控平臺加壓時沒有獲取靜態(tài)資源,一個用戶使用一個長連接。(測程序是可以這樣,驗收時不行) 數(shù)據(jù)量沒有加到10萬設(shè)備應(yīng)有的業(yè)務(wù)數(shù)據(jù)量。 測試平臺針對程序測試而非驗收時涉及到外部接口的功能應(yīng)該設(shè)置測試樁程序MOCO性能測試誤區(qū) 一提到性能測試
10、就開始打開LR/Badboy錄腳本。 錄完腳本后不對腳本進(jìn)行分析優(yōu)化就開始加壓。 CPU和內(nèi)存占用率越低越好。 調(diào)整參數(shù)就能優(yōu)化性能。 加機(jī)器就能優(yōu)化性能。 內(nèi)存擴(kuò)容解決性能問題。性能測試工程師需要具備的技能數(shù)據(jù)庫管理和性能優(yōu)化測試工具使用擴(kuò)展及其原理前端技術(shù)和優(yōu)化策略Web、App腳本語言的使用Python、Shell中間件、操作系統(tǒng)基本原理和配置程序語言編程及原理java、c#基本技能有計劃的慢慢啃,木有捷徑可走性能測試工程的幾個階段高級:給出性能優(yōu)化解決方案中級:準(zhǔn)確定位性能問題初級:寫腳本程序加壓參數(shù)化一個好的性能測試工程師= 半個DBA + 半個運維 + 半個開發(fā)總結(jié)回顧 一個Http請求的執(zhí)行過程4個時間段。 Jm
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024拍賣師新媒體營銷合作與勞動合同3篇
- 二零二五年度智能教育平臺SaaS軟件許可使用合同3篇
- 二零二五年度建筑施工安全生產(chǎn)應(yīng)急救援協(xié)議3篇
- 二零二五年度智能家居系統(tǒng)代理商招募合同3篇
- 2025大理石供銷合同范文
- 二零二五年度電子商務(wù)平臺安全論文匯編與策略研究3篇
- 二零二五年度搬家運輸倉儲服務(wù)合同
- 2025環(huán)??萍柬椖亢贤?/a>
- 2025輸送機(jī)設(shè)備購銷合同
- 二零二五年度建筑工地施工人員安全生產(chǎn)教育與培訓(xùn)合同6篇
- 初中生物人教七年級上冊(2023年更新) 生物圈中的綠色植物18 開花和結(jié)果
- 水電解質(zhì)及酸堿平衡的業(yè)務(wù)學(xué)習(xí)
- 統(tǒng)編版一年級語文上冊 第5單元教材解讀 PPT
- CSCEC8XN-SP-安全總監(jiān)項目實操手冊
- 加減乘除混合運算600題直接打印
- 口腔衛(wèi)生保健知識講座班會全文PPT
- 成都市產(chǎn)業(yè)園區(qū)物業(yè)服務(wù)等級劃分二級標(biāo)準(zhǔn)整理版
- 最新監(jiān)督學(xué)模擬試卷及答案解析
- ASCO7000系列GROUP5控制盤使用手冊
- 污水處理廠關(guān)鍵部位施工監(jiān)理控制要點
- 財政投資評審中心工作流程
評論
0/150
提交評論