<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      性能測試入門解讀

      背景介紹

      項目越做越大,用戶量和請數量可能隨時發生井噴,如果等到系統崩潰時再補救,損失可就大了,所以得想個辦法提前預防。

      想要預防,就得知道系統的哪個環比較節薄弱,頂不住壓力,還要對系統的承受能力有個全面的評估,心里有底,好提前預防,這種評估分析預防優化等一系列手段全被性能測試涵蓋在內。

      性能的指標

      不同角色對性能的理解不盡相同,對于用戶來說,操作流不流暢就是性能,對于研發人員來說,接口慢不慢和頂不頂得住并發就是性能,對于運維人員來說,網絡帶寬大小和資源占用高低就是性能。

      那就必要統一性能指標了,首先,用戶與研發人員都關注速度,實際上是接口的處理速度,再細一些是客戶端發起請求到收到服務端返回的時間,那就把這個指標定為響應時間吧。

      我們做一款產品最需要的就是用戶,用戶越多越好,但隨著用戶量地增加,同時發起操作的用戶也越來越多,一時之間服務器可能要處理上萬的請求,在這同一時刻處理的請求數就叫做并發數,不知何時起,處理過高并發的人成為了大家眼中的瑰寶,而并發數也成為了產品做大做強的標志,所以并發數也要列入性能的指標。

      并發數只能代表同時請求的數量很多,但并沒有賦予太多含義,與他人談論時也無法讓人整體把握系統的概況,所以需要將并發數進行變種以應對不同業務不同場景的描述,比如一天有多少人訪問,一個小時能處理多少業務,每秒處理的事務數(TPS),每秒HTTP的請求數(HPS),每秒查詢數(QPS)等等,這個指標我們為其命名為吞吐量。

      除此之外,還要滿足運維人員的要求,他們需要根據系統負載、內存占用、CPU占用、網絡磁盤I/O等各項指標進行分析,以便于為擴容做準備,這種一系列的硬件指標我們統稱為性能計數器。

      簡單說明一下系統負載,它是指CPU當前正在執行的與等待執行的進程數總和,該數量可以體現出系統是否繁忙,我們最希望看到的是沒有進程排隊等候,所以最理想的負載數量就是CPU的數量。

      四種測試類型

      我們在開發時會對系統的性能有個初步的預期,然后通過模擬請求程序逐步加大請求壓力,直到你認為服務器資源的消耗已經無法接受了,此時再觀察系統性能是否達到了預期,這種方式就是性能測試。注意,名稱雖與上述重復但不是一個概念。

      我們繼續加大請求壓力,直到服務器的某個資源已經達到飽和了,或者性能計數器中的某個指標達到了安全臨界值,簡單地說,再請求下去,系統的處理能力不但不能提高,反而會下降了。這種測試方式叫做負載測試。

      還可以繼續加大壓力,不去管資源和性能指標如何,就瘋狂請求,不停地請求,直到服務器崩潰,不能再繼續工作了,這個時候就測出了系統最大承受能力,而這種測試方式被稱為壓力測試。

      沒辦法再繼續施壓了,因為服務器已經沒有響應,那就模擬一些比較真實的場景吧,因為真實場景下的請求壓力是不均勻的,我們可以在特定環境、硬件和時間下給系統一定壓力,看看業務是否能穩定運行,這種測試方式叫做穩定性測試。

      優化手段

      因為一個完整的WEB請求包含前端和后端兩個部分,優化手段也從這兩部分出發。

      WEB前端優化

      減少請求。現在大部分請求使用的是HTTP1,每個圖片、腳本以及樣式等資源的獲取都要客戶端單獨跑線程建立連接,資源過多時消耗會很大,可以將不同類型的資源各整合至一個文件,這樣少量的請求就能拿到需要的數據。

      瀏覽器緩存。因為圖片、腳本、樣式等資源使用頻率很低,沒有必要每次請求都重新下載,可以通過設置HTTP的頭部信息將資源緩存起來,這樣可以有效降低加載速度,被緩存的資源需要更新時,可以通過修改資源文件名稱的方式讓瀏覽器重新下載。

      壓縮。圖片、腳本、樣式等靜態資源一般都比較大,服務端可以將資源文件進行壓縮,壓縮后的文件較小,下載速度也會變快,但是前后解壓縮文件會造成一定的壓力,所以壓縮手段要視業務情況而定。

      CSS與JS順序。因為瀏覽器會加載完所有的CSS后才去渲染頁面,所以應該將樣式文件放在上面加載。而JS剛好相反,瀏覽器剛加載完JS就會執行,如果放在前面會出現頁面卡頓的現象,所以腳本文件應該放到頁面最后加載。

      CDN加速。原理與瀏覽器緩存類似,可以通過運營商將樣式、腳本、圖片等資源文件緩存到離用戶最近的節點上,這樣用戶在發起請求時就能直接在最近的節點上找到需要的靜態資源。

      反向代理。在客戶端與要交互的那臺真實服務器中間再加一臺服務器,所有的請求都由這臺機器轉發,當客戶端第一次請求資源時將資源緩存到反向代理服務器,其他客戶端就可以直接在反向代理服務器拿到資源,節省了轉發的時間。

      服務端優化

      緩存。與前端一樣,緩存是性能優化考慮的第一要素,目前流行的NoSQL數據庫都是在內存讀取的,速度會快,可以將讀寫頻率很高但很少發生變化的數據放入緩存,可以有效提升系統吞吐量。

      異步。像日志記錄這種一定要去做但不需要等它做完的邏輯,應該把它放到消息隊列當中,再由消費者進程逐條讀取消息隊列中的數據,慢慢執行,就像醫院的排隊取號,可以有效解決瞬時并發較大的業務場景。

      集群。因為單臺機器的處理能力有限,如果并發請求量過大,可能無法承受,可以加一些機器分擔其壓力,使得請求平均分配到每臺機器上,這些由相同功能組成的機器群就是集群。

      優化代碼。不能秉著技術不夠機器來湊的原則,回到實際代碼當中來,多數性能問題還是代碼寫的不夠優秀,比如三條語句能搞定的數據,查了十多條,幾十行代碼算出的變量,卻沒有地方使用,用不到的數據表聯了又聯等。

      posted @ 2019-06-14 22:48  MARIOOW  閱讀(1192)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 日韩成人午夜精品久久高潮| 国产女同疯狂作爱系列| 东京热人妻无码一区二区av| 日韩精品无码不卡无码| 久久99久国产麻精品66| 国产精品爆乳奶水无码视频免费| 久久婷婷综合色一区二区| 99视频在线精品国自产拍| 国产品精品久久久久中文| 国产超高清麻豆精品传媒麻豆精品| 精品尤物TV福利院在线网站| 日韩精品毛片一区到三区| 朝阳区| 亚洲中文字幕无码中字| 国产精品国产精品偷麻豆| 高清自拍亚洲精品二区| 台南市| 午夜精品久久久久久久爽| 欧美激情 亚洲 在线| 成人av久久一区二区三区| 亚洲av无码之国产精品网址蜜芽| av鲁丝一区鲁丝二区鲁丝三区 | 浓毛老太交欧美老妇热爱乱| 无码丰满人妻熟妇区| 中文字幕日韩视频欧美一区| 国产精品99久久久久久www| 亚洲精品av一二三区无码| 亚洲国产成人不卡高清麻豆| 国产欧美日韩亚洲一区二区三区| 干老熟女干老穴干老女人| 办公室强奷漂亮少妇视频| 国产精品福利自产拍在线观看 | 国产综合视频精品一区二区| 国产粉嫩美女一区二区三| 中国熟妇毛多多裸交视频| 精品亚洲国产成人痴汉av| 无码熟妇αⅴ人妻又粗又大| 亚洲人成网站在线在线观看| 亚洲人成网线在线播放VA| 依依成人精品视频在线观看| 国产日产免费高清欧美一区|