在企業中完成性能測驗專案是一個挑戰性強、技術含量高的任務,本文將分享一個公司完成高性能游戲系統的性能測驗程序,展示如何完成一次成功的性能測驗專案,
專案背景:這是一家游戲公司,推出了一款新的游戲軟體,系統要求高性能、高并發、高可用,為確保用戶體驗和游戲體驗,公司決定在正式上線前對系統進行性能測驗.
第一步:
定義測驗目標
在專案啟動之初,團隊首先進入到定義測驗目標的階段,據此來確定測驗范圍、測驗手段和測驗工具,此階段重要性不言而喻,目標不明,則結果無從說起,
?通過團隊討論,確立了以下的目標:
- 針對目標場景下的指標進行基準測驗,并得到高可用性的性能資料,
- 評測流量下的例外場景,確定系統多少負載能力及擴展架構,
- 通過性能測驗結果來查找和定位系統的瓶頸,并通過在代碼層面進行優化提升系統吞吐量及性能表現,
- 揭示用戶最有可能使用系統的行徑模式及環境和業務決策,
第二步:
測驗計劃調研
按照測驗目標,測驗團隊進行測驗計劃調研,我們將基于應用程式不斷壓測及觀察應用程式的運行狀況來判定應用程式的瓶頸,并且對觀察結果進行分析和總結,為分析改善提供有力資料支撐,
針對要測的業務模式,我們設計出了4個具有典型意義的場景:
- 500-10000個并發用戶請求,
- 負載測驗,根據實際場景資料模擬用戶操作習慣,
- 容量測驗,以應用程式在各個方面的性能和資源限制,并確定系統配置的最大極限,
- 24小時穩定性測驗,保證系統在持續24小時真實環境下的高可用性,
第三步:
執行測驗計劃
通過測驗計劃調研,我們進行了測驗專案將近1個月的時間安排到執行,我們使用了多種工具,應用于不同測驗領域,例如LoadRunner、JMeter、Appdynamics、Keynote、Fiddler、Wireshark、Flume等等,在這里不展開程式設計中復雜的使用,
下面是使用JMeter測驗的例子,它是一款開源的壓力測驗工具,它可以對不同種類的服務器、網路協議進行測驗,
下面是相關的測驗結果:
基準測驗:
將系統在低負載環境下按照預定的標準進行性能測驗,例如單用戶回應時間,服務器負載以及資料庫處理能力都是很好的評估指標,測驗結果如下所示:
| 測驗指標 | 結果 |
| 每秒事務處理能力 | 7500 |
| 平均回應時間 | 0.3秒 |
| CPU使用率 | 70% |
| 記憶體使用率 | 60% |
負載測驗:
使用模擬混合負載的測驗,在同一時刻模擬大量高并發用戶同時訪問系統,測驗結果如下所示:
| 測驗指標 | 結果 |
| 每秒事務處理能力 | 13800 |
| 平均回應時間 | 2秒 |
| 最大回應時間 | 5秒 |
| CPU使用率 | 85% |
| 記憶體使用率 | 80% |
容量測驗:
容量測驗中使用jMeter模擬出可實作的并發用戶訪問系統,測驗結果如下所示:
| 測驗指標 | 結果 |
| 每秒事務處理能力 | 28000 |
| 平均回應時間 | 7秒 |
| 最大回應時間 | 15秒 |
| CPU使用率 | 99% |
| 記憶體使用率 | 95% |
穩定性測驗:
保證系統在持續24小時真實環境下的高可用性,測驗結果如下所示:
| 測驗指標 | 結果 |
| 24小時無故障時間 | √ |
| CPU使用率 | 85% |
| 記憶體使用率 | 92% |
第四步:
測驗結果及例外分析
通過以上測驗,團隊分析性能資料,據此針對性進行優化, 例如通過清理CPU 日志和資料庫存盤調優等方式進行優化,以提高系統穩定性,優化結果如下所示:
| 測驗指標 | 優化前 | 優化后 |
| 每秒事務處理能力 | 28000 | 45000 |
| 平均回應時間 | 6秒 | 0.2秒 |
| 最大回應時間 | 13秒 | 1秒 |
| CPU使用率 | 99% | 70% |
| 記憶體使用率 | 97% | 80% |
根據性能測驗結果,我們發現系統在負載和容量測驗場景下呈現出問題
負載測驗:
我們注意到在高負荷下,回應時間開始大幅上升并且回應時間的標準差開始下降,這表明系統正在達到其極限,并可能無法容忍更多的用戶,
容量測驗:
當我們在大負載下執行測驗時,發現系統性能發生了很大的下降,我們發現jMeter本身不能支持如此大量的并發用戶訪問,我們使用了不同的工具來驗證測驗結果,我們發現系統極限在28000并發訪問量左右,該結果使我們意識到系統還需要在某些方面進一步優化,
第五步:
得出結論——性能測驗報告
通過各種性能測驗方式,團隊得出了一個詳細的測驗報告,該報告概括了測驗結果及其優化方案,并包括了性能測驗的詳細資料、結論和建議,以便游戲開發團隊根據測驗結果決定是否更改系統架構、代碼或引數,最終,該游戲系統在經過不斷測驗和改進后成功上線,并獲得了良好的用戶體驗,
總結:
該高性能游戲系統性能測驗案例中,測驗團隊首先制定了測驗目標,確定測驗計劃,然后采用不同的測驗工具進行測驗,為改進系統性能提供了資料支持,并得出了詳細的測驗報告,測驗結果中的例外分析讓工程團隊能夠針對具體的問題進行精細的優化,這一成功性能測驗的案例展示出一個優秀公司如何在高壓力的環境下驗證性能、保證高可用性和安全性,實作巨大價值的程序,
另特意為各位同學準備了一份13G的超實用干貨自學資源,涉及的內容非常全面,涵蓋功能測驗、Linux資料庫、Python編程語言,介面測驗、UI自動化測驗、性能測驗......包括軟體學習路線圖,50多天的上課視頻、16個突擊實戰專案(滿足你對測驗經驗的需求),80余個軟體測驗用軟體,37份測驗檔案,70個軟體測驗相關問題,40篇測驗經驗級文章,上千份測驗真題分享,還有2023軟體測驗面試寶典,還有軟體測驗求職的各類精選簡歷,希望對大家有所幫助…這些都在我的軟體測驗學習交流群里:110685036
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556240.html
標籤:其他
上一篇:業務安全情報第十七期 | 國際航班上,小“票代”在瘋狂倒賣高價票
下一篇:返回列表
