<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 我們說的高并發是什么? 上面的定義明顯不是我們通常所言的并發,在互聯網時代,所講的并發、高并發,通常是指并發訪問。也就是在某個時間點,有多少個訪問同時到來 通常如果一個系統的日PV在干萬以上,有可能是一個高并發的系統 ## 高并發的問題,我們具體該關心什么? - QPS 每秒鐘請求或者査詢的數量,在互聯網領域,指毎秒響應請求數(指HTTP請求);一個頁面中可能有多個 http 請求 ` (總PV數*80%)/(6小時秒數*20%)=峰值每秒請求數(QPS)` - 吞吐量 單位時間內處理的請求數量(通常由QPS與并發數決定) - 響應時間 從請求發出到收到響應花費的時間。例如系統處理一個HTTP請求需要100ms,這個100ms就是系統的響應時間 - PV 綜合瀏覽量( Page view),即頁面瀏覽量或者點擊量,個訪客在24小時內訪問的頁面數量 - UV 獨立訪客( Unique Visitor),即一定時間范圍內相同訪客多次訪問網站,只計算為1個獨立訪客 - 帶寬 計算帶寬大小需關注兩個指標,峰值流量和頁面的平均大小 `日網站帶寬=PV/統計時間(換算到秒)*平均頁面大小(單位KB)*8` ## 常用性能測試工具 ab、wrk、 http_load、 Web bench、 Siege、 Apache Jmeter ### ab 概念 全稱是 apache benchmark,是 apache官方推出的工具刨建多個并發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基于URL的,因此,它既可以用來測試apache的負載壓力,也可以測試 nginx、 lighthttp、 tomcat、IS等其它Web服務器的壓力 #### ab的使用 模擬并發請求100次,總共請求5000次 `ab -c 100 -n 5000 www.demo.com` #### 注意事項 測試機器與被測試機器分開 不要對線上服務做壓力測試 觀察測試工具ab所在機器,以及被測試的前端機的cPU,內存,網絡等都不超過最高限度的75% (`top` 命令) demo ``` > ab -c 100 -n 100 > Concurrency Level: 100 Time taken for tests: 55.923 seconds Complete requests: 1000 Failed requests: 3 (Connect: 0, Receive: 0, Length: 3, Exceptions: 0) Total transferred: 2958950 bytes HTML transferred: 2495491 bytes Requests per second: 17.88 [#/sec] (mean) # 這里是QPS數,每秒最高請求數,越高越好 Time per request: 5592.287 [ms] (mean) Time per request: 55.923 [ms] (mean, across all concurrent requests) Transfer rate: 51.67 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.1 0 5 Processing: 408 5430 1947.2 5391 11044 Waiting: 0 5422 1953.9 5391 11043 Total: 413 5430 1946.6 5391 11044 Percentage of the requests served within a certain time (ms) 50% 5391 ## 平均頁面響應時間 5391毫秒 66% 6127 75% 6684 80% 7049 90% 8073 95% 8741 98% 9532 99% 10089 100% 11044 (longest request) ## 最長頁響應時間 ``` ## QPS 劃分 ### QPS達到50 可以稱之為小型網站,一般的服務器就可以應付,無需優化 ### QPS達到100 假設關系型數據庫的每次請求在0.01秒完成 假設單頁面只有一個SQL查詢,那么100QPS意味著1秒鐘完成100 次請求,但是此時我們并不能保證數據庫查詢能完成100次 **方案**:數據庫緩存層、數據庫的負載均衡 ### QPS達到800 假設我們使用百兆帶寬,意味著網站出口的實際帶寬是8M左右假設每個頁面只有10K,在這個并發條件下,百兆帶寬已經吃完 **方案**:CDN加速、負載均衡 ### QPS達到1000 假設使用 Memcache緩存數據庫查詢數據,每個頁面對Memcache的請求遠大于直接對DB的請求 Memcache的悲觀并發數在2W左右,但有可能在之前內網帶寬已經吃光,表現出不穩定 **方案**:靜態HTML緩存 ### QPS達到2000 這個級別下,文件系統訪問鎖都成為了災難 **方案**:做業務分離,分布式存儲
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看