性能測試分析之帶寬瓶頸的疑惑

第一部分, 測試執行

先看一圖,再看下文

2011040216261387.png

這個當然就是壓力過程中帶寬的使用率了,我們的帶寬是1Gbps的,合計傳輸速率為128MB/s,也正因為這個就讓我越來越疑惑了,不過通過壓力過程中的各項數據我又不得不相信。

在看看測試頁面的大小和請求,如下圖所示:

2011040216305553.jpg

這是通過httpwatch檢測得出來的,頁面傳輸內容的大小為652154Byte,請求數為149次,也就是說加載一次頁面就大概需要請求這么多次請求,傳輸這么大的內容,當然這里剔除緩存機制來分析的。

場景設計:

  1、并發用戶200

  2、每20秒加載10個用戶

  3、全部用戶加載完成之后,持續運行10分鐘

監控目標:TPS、響應時間、點擊率、吞吐率、內存、CPU和網絡帶寬

測試分析結果如下圖:

2011040216503284.jpg

這里的可以得出平均點擊率為11952.139次/s,而吞吐率為73178737byte,大約為73MB/s,TPS:720/s,這里的錯誤后面再說。

2011040216590561.jpg

這里的響應時間很顯然沒有上去,說明壓力沒有傳到頁面上,而上面的錯誤也同時可以證實,報錯基本都是請求被拒絕,也就說后面沒有請求導致頁面沒有壓力,響應時間就無效了。  

通過監控得到系統資源占用率數據有:

  CPU:25~30%

  內存:20%

  網絡帶寬:70~95%  

通過Httpwatch在壓力過程監控的頁面響應時間為:6.454s

通過結合虛擬用戶、點擊率、吞吐率和響應時間的曲線圖分析得出如下總結:

  當虛擬用戶加載到150的時候,點擊率和吞吐率此時處于峰值,且網絡帶寬達到90%以上,當虛擬用戶繼續加載的時候,點擊率和吞吐率均都開始下降,此時場景運行開始報錯,提示信息為服務器連接被拒絕。通過分析,處于峰值只有網絡帶寬,為90%以上,而對比此處的吞吐率值恰為95MB/s左右,1Gbps的網絡帶寬傳輸速率為128MB/s,從而表明由于吞吐量過大,占用了大量的帶寬資源,導致后續的虛擬用戶無法得到服務器的資源,而致使請求被拒絕。從最后的頁面響應時間來看,系統的壓力并沒有被承接到頁面上,而是由于過大的吞吐量吞噬了網絡帶寬,導致最終無法有效地完成測試任務。

第二部分,測試分析

  如上的結果確實是證實了網絡帶寬不夠用,抱著這個不大相信的疑問,我在群里跟大家討論了一番,當然大家的給出結論也都是一致,也有建議修改系統的參數,釋放所有的帶寬等;還有就是分析頁面,當然這個我個人認為是比較切實的路徑,畢竟1Gbps的帶寬,如果再擴從的話也不大現實,所以還是要靠優化程序著手。

  我又繼續通過httpwatch工具對其他門戶網站首頁進行檢測,發現頁面容量差不多,但是從請求上來講,騰訊和同花順的首頁請求都只有80左右,而我們的卻有149個請求,這里的請求數就直接決定于點擊率的多少,從這里我們就可以發覺,并不是對所有的壓力測試來說,每秒鐘的點擊率越高,對應的吞吐率越大就說明系統的性能越好,必須相對請求數而言來進行分析。從另一個層面上來說點擊率越高是說明程序效率好,但是從本身來講,如果一個頁面本身的請求就很多,那最后的點擊率必然會大,大到最后的結果就是頁面內容累計容量就越大,導致傳輸帶寬的不斷放大,當然就帶寬不夠用了。如果一定程序上降低了單個頁面的請求數量,那頁面的執行效率必然會越高,而需要結合整體頁面的容量大小來衡量。

最后,我給開發提出的建議,還是需要對程序、頁面等進行優化,優化硬件還有待考量,優化建議如下:

  1、降低頁面的請求次數

  2、優化頁面中各個元素的容量大小,結合Page Speed和YSlow工具進行優化測試

  3、多方面結合緩存機制

不知道以上的分析結果是否準確,但讓我從性能分析的思路上又走出了一個絕地,不要放過每一個細節,也許那就是拐點。

轉載于:https://www.cnblogs.com/candle806/archive/2011/04/02/2003828.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 中的LayoutInflater的理解

LayoutInflater與findViewById的區別? 對于一個已經載入的界面,就可以使用findViewById()方法來獲得其中的界面元素。對于一個沒有被載入或者想要動態載入的界面,就需要使用LayoutInflater對象的inflate()方法來載入。findViewById()是查找已…

linux rootfs編譯進內核,九鼎x6818開發板筆記:uboot、kernel、rootfs編譯和燒寫

下面記錄了如何搭建嵌入開發環境,如何編譯uboot、kernel、和文件系統,如何燒寫鏡像以及如何配置uboot環境變量。閱讀注意:記錄中(Base框中的內容)一些操作故意被添加,為了展示文件內容,故意調用cat(Ubuntu)或者type(wi…

figma下載_素描vs Figma困境

figma下載I distinctly remember how much hatred I had in my heart when I lived through my first UI update. The year was 2009; I had just gotten my braces off and I was ready to smash that ‘Like’ button on my high school crush’s status when I logged into …

祝大家七夕快樂,邀你源碼共讀,順帶發點紅包

大家好,我是若川。這是一個普通的周六。只不過又叫七夕節,祝大家七夕節快樂~所以就不更新技術文了。估計還是有很多讀者不知道我。若川名字由來是取自:上善若水,海納百川。順便放兩篇文章。我讀源碼的經歷,跟各位讀者朋…

windows 系統監視器 以及建議閥值

windows 系統監視器 以及建議閥值 計數器的說明可以在添加計數器那邊 資源 對象\計數器建議的閾值注釋磁盤Physical Disk\% Free SpaceLogical Disk\% Free Space15%磁盤Physical Disk\% Disk Time Logical Disk\% Disk Time90%磁盤Physical Disk\Disk Reads/sec、Physical Dis…

前端人員如何在linux服務器上搭建npm私有庫

為什么要搭建npm私有庫? 為了方便下載時,公共包走npmjs,私有包走內部服務器。npm包下載的速度較慢,搭建npm私有庫之后,會先操作私有庫中是否有緩存,有緩存直接走緩存,而不用重新再去請求一遍網絡。哪種方式…

硬幣 假硬幣 天平_小東西叫硬幣

硬幣 假硬幣 天平During the last 1,5 years, I’ve been traveling a lot. Apart from my must-have things like laptop, sketchbook, and power bank, there constantly appears a new one, in a familiar shape but a new look. That’s 在過去的1.5年中,我經常…

Linux創建一個用戶時分配組,useradd和groupadd(Linux創建用戶\用戶組\設置\分配用戶權限)的使用...

前言:man useradd    man groupadd    info useradd    info groupadd 都可以獲取相關命令的用法信息。個人比較喜歡讀英文解釋文檔,沒有你想象的那么complicated!😜USERADD(8) System Management Commands USERADD…

尤雨溪發布的Vue 3.2 有哪些新變化?

大家好,我是若川。今天分享一篇 Vue 3.2 版本的文章。查看源碼等系列文章。學習源碼整體架構系列、年度總結、JS基礎系列1前言8.10號凌晨,尤雨溪在微博平臺官宣 Vue 3.2 版本正式發布:此版本包含一系列重要的新功能與性能改進,但并…

對象的清除

調用System.gc() 請求垃圾回收的最簡單的方法,但是注意——只是請求,在調用System.gc()之后,有可能會釋放出更多的內存空間。轉載于:https://www.cnblogs.com/happykakeru/archive/2011/04/09/2010030.html

https://zeplin.io/ 設計圖標注及切圖

2019獨角獸企業重金招聘Python工程師標準>>> https://zeplin.io/ 轉載于:https://my.oschina.net/soho00147/blog/3025646

更好的設計接口_設計可以而且必須做得更好

更好的設計接口We live in a world that becomes more dependent on technology every day. Tech gives us new ways to communicate, learn, work, and play, and recently it enabled us to reveal the appalling police brutality towards black people in the US by sharin…

linux隱寫文件剝離,雜項的基本解題思路(1)——文件操作隱寫、圖片隱寫

文件操作隱寫圖片隱寫壓縮文件處理流量取證技術文章本來是分成4部分的,但是前兩部分何在一起寫了也就沒有分開,所以干脆就只分了兩部分文件基本類型的識別一、kail 下file 文件名原理就是識別文件文件頭比如這個軟件:二、WinHex通過winhex分析…

賬務管理系統

2011-04-11 21:55最近寫了一個賬務管理系統(個人版)使用C#語言編寫,編譯器VS2010,數據庫Access2010,系統采用三層架構,界面可以換膚, 窗體按鈕可以移動,可以自定義皮膚,保…

初學者也能看懂的 Vue3 源碼中那些實用的基礎工具函數

1. 前言大家好,我是若川。最近組織了源碼共讀活動。每周讀 200 行左右的源碼。很多第一次讀源碼的小伙伴都感覺很有收獲,感興趣可以加我微信ruochuan12,拉你進群學習。寫相對很難的源碼,耗費了自己的時間和精力,也沒收…

Flutter RichText支持自定義文字背景

extended text 相關文章 Flutter RichText支持圖片顯示和自定義圖片效果Flutter RichText支持自定義文本溢出效果Flutter RichText支持自定義文字背景Flutter RichText支持特殊文字效果之前介紹過了Extended text,老規矩上圖 UI設計說,那個字可以加個卟呤…

細說 Vue.js 3.2 關于響應式部分的優化

大家好,我是若川。上一篇寫的是:初學者也能看懂的 Vue3 源碼中那些實用的基礎工具函數。今天再分享一篇 Vue 3.2 的文章。學習源碼整體架構系列、年度總結、JS基礎系列背景Vue 3 正式發布距今已經快一年了,相信很多小伙伴已經在生產環境用上了…

linux 運行apj,pxe+ris-linux實現在DELL R710上網絡安裝windows2003

一、前言網絡遠程安裝windows2003,目前有兩種方法:一就是通過windows自帶的遠程安裝服務(RIS,Remote Installation Service),但這種方法需要用windows做為源服務器,需要安裝域控制器,dhcp,tftp等…

Debian Security Advisory(Debian安全報告) DSA-4411-1 firefox-esr security update

Debian Security Advisory(Debian安全報告) DSA-4411-1 firefox-esr security update Package :firefox-esr CVE ID: CVE-2018-18506 CVE-2019-9788 CVE-2019-9790 CVE-2019-9791 CVE-2019-9792 CVE-2019-9793 CVE-2019-9795 CVE-2019-9796 CVE…

Entity framework WhereInExtension

摘自 http://www.cnblogs.com/ejiyuan/archive/2009/07/20/1527224.html publicstaticclassWhereInExtension {privatestaticExpression<Func<TElement, bool>>BuildWhereInExpression<TElement, TValue>(Expression<Func<TElement, TValue>>pro…