亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Apache的壓力測試以及web性能優(yōu)化的常用知識總結(jié)

 更新時間:2015年12月21日 14:22:56   作者:紅心李  
這篇文章主要介紹了Apache的壓力測試以及web性能優(yōu)化的常用知識總結(jié),筆記由《構(gòu)建高性能web站點》這本高人氣書籍整理而來,需要的朋友可以參考下

什么是帶寬?

誤解:“數(shù)據(jù)在線路中的移動速度”、“數(shù)據(jù)的傳輸速度”

我們所說的帶寬是指數(shù)據(jù)的發(fā)送速度,比如百兆網(wǎng)卡,指網(wǎng)卡的最大發(fā)送速度是100Mbps,也就是說網(wǎng)卡在一秒鐘最多可以發(fā)送100Mb的數(shù)據(jù);相關(guān)的因素:

數(shù)據(jù)發(fā)送裝置將二進制信號傳送到線路的能力,也稱信號傳輸頻率,以及另一端數(shù)據(jù)接收裝置對二進制信號接收的能力,也包括線路對傳輸頻率的支持程度;
數(shù)據(jù)傳輸介質(zhì)的并行度,等價于計算機系統(tǒng)總線寬度的概念;
 

習(xí)慣與約定

b:比特單位 bit;

B:字節(jié)單位 Byte;

1KB = 1024B;

1kb = 1000b;

M與K 的換算同上;

 

什么是吞吐率?

吞吐率(Throughput),是指web服務(wù)器單位時間內(nèi)處理的請求數(shù),單位:reqs/s;

一般更關(guān)心的是服務(wù)器并發(fā)處理能力的上限 ,即最大吞吐率;

 

關(guān)于壓力測試

基于吞吐率壓力測試的幾個前提:

并發(fā)用戶數(shù);(某一時刻同時向服務(wù)器發(fā)送請求的用戶數(shù)量)
總請求數(shù);
請求資源描述;
 

幾個重要指標:

請求等待時間

用戶平均請求等待時間(主要衡量服務(wù)器在一定并發(fā)用戶數(shù)的情況下,對單個用戶的服務(wù)質(zhì)量)
服務(wù)器平均請求方護理時間(衡量服務(wù)器整體服務(wù)質(zhì)量)
壓力測試工具:Apache附帶的ab、LoadRunner、Jmeter

 

服務(wù)器系統(tǒng)負載

$ cat /proc/loadavg 
0.58 1.19 0.64 1/92 8306

這里0.58 1.19 0.64 這3個數(shù)字表示:系統(tǒng)最近1分鐘、5分鐘、15分鐘分別計算出來的系統(tǒng)負載;

1表示當(dāng)前運行隊列中的進程個數(shù);92表示此時的進程總數(shù);8306表示到此時為止最后創(chuàng)建的一個進程ID;

 

Apache  ab的使用介紹

在《構(gòu)建高性能web站點》中多處講到了用apache 自帶的壓力測試工具ab進行Server的性能測試,搜索了一下相關(guān)知識,整理如下:

ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用于 HTTP Server 的benchmark testing,可以同時模擬多個并發(fā)請求。下面以一個實際例子來介紹ab的使用:

[xiekeli@localhost ~]$ ab -n 1000 -c 50 http://www.abc.com/a.php        

 //產(chǎn)生1000次http請求,每次的并發(fā)用戶數(shù):50

This is ApacheBench, Version 2.0.40-dev <;$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
 
Benchmarking www.abc.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
 
 
Server Software: Apache                     //被測平臺Apache 

Server Hostname: www.abc.com                   //服務(wù)器主機名
Server Port: 80
 
Document Path: /a.php
Document Length: 231 bytes                   //文檔大小
 
Concurrency Level: 50                       //并發(fā)數(shù)
Time taken for tests: 12.818547 seconds
Complete requests: 1000                      //完成請求數(shù)
Failed requests: 0                       //失敗的請求數(shù)
Write errors: 0
Non-2xx responses: 1001
Total transferred: 438438 bytes                  //整個場景中的網(wǎng)絡(luò)傳輸量
HTML transferred: 231231 bytes                  //整個場景中的HTML內(nèi)容傳輸量
Requests per second: 78.01 [#/sec] (mean)       //吞吐率,即每秒處理的請求數(shù)(后面括號中的 mean 表示這是一個平均值)
Time per request: 640.927 [ms] (mean)          //每次請求的響應(yīng)時間(后面括號中的 mean 表示這是一個平均值

Time per request: 12.819 [ms] (mean, across all concurrent requests)    //每次請求的響應(yīng)時間(后面括號中已經(jīng)說明,是按所有并發(fā)數(shù)計算的平均值)

Transfer rate: 33.39 [Kbytes/sec] received  //平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過大導(dǎo)致響應(yīng)時間延長的問題 
Connection Times (ms)           //網(wǎng)絡(luò)上消耗的時間的分解,各項數(shù)據(jù)的具體算法還不是很清楚 

min mean[+/-sd] median max
Connect: 186 307 598.1 212 9188
Processing: 188 271 289.6 214 1923
Waiting: 188 245 219.9 213 1416
Total: 376 579 660.2 427 9380
 //整個場景中所有請求的響應(yīng)情況。在場景中每個請求都有一個響應(yīng)時間,其中50%的用戶響應(yīng)時間小于1093 毫秒,60% 的用戶響應(yīng)時間小于1247 毫秒,最大的響應(yīng)時間小于7785 毫秒,由于對于并發(fā)請求,cpu實際上并不是同時處理的,而是按照每個請求獲得的時間片逐個輪轉(zhuǎn)處理的,所以基本上第一個Time per request時間約等于第二個Time per request時間乘以并發(fā)請求數(shù)

Percentage of the requests served within a certain time (ms) 
50% 427
66% 430
75% 431
80% 433
90% 451
95% 1630
98% 3382
99% 3429
100% 9380 (longest request)

-n : 表示的測試的次數(shù),很多地方翻譯成“發(fā)送請求的次數(shù)”,這樣很容易產(chǎn)生歧義,應(yīng)該叫:“http請求數(shù)”比價合適;這里表示1000次http請求;
-c : 表示每次的請求數(shù),-c 50表示一次同時發(fā)起50個http請求,50次請求都收到響應(yīng)了之后,再次發(fā)送50個http請求,直到發(fā)滿1000次。

web優(yōu)化的其他一些相關(guān)知識點:
緩存(cache)和緩沖(buffer)的區(qū)別:

緩存 (cache):緩存的目的是把需要花費昂貴開銷的計算結(jié)果保存起來,在以后需要的時候直接取出,避免重復(fù)的計算。

緩沖 (buffer):目的在于改善各部件之間因為速度不同而引發(fā)的問題。起到將快速設(shè)備與慢速設(shè)備平滑銜接的作用。

頁面緩存(Page Cache)

頁面緩存就是將動態(tài)計算的結(jié)果進行緩存,避免動態(tài)內(nèi)容不必要的重復(fù)計算,主要是針對動態(tài)生成的html頁面和動態(tài)圖片或動態(tài)XML數(shù)據(jù)等;

緩存持久化和搜索

    如果緩存文件非常多,cache目錄下會擁擠大量的文件,如果緩存的文件的讀寫頻度比較高,對CPU的影響是非常大的;

解決的方案:

      1、使用支持目錄hash加速目錄遍歷的文件系統(tǒng)來緩解這種情況,如:XFS和reiserfs;

      2、緩存目錄分級

過期檢查

  •   緩存過期時間
  •     緩存有效期長度

把緩存放到內(nèi)存中

如果將緩存數(shù)據(jù)放到磁盤文件中,每次緩存加載和過期檢查都在磁盤I/O的開銷,如果磁盤同時還運行著如數(shù)據(jù)庫這樣的I/O密集型應(yīng)用,那么緩存文件的I/O操作便會存在一定的延遲。

作者在這里提到了兩個PHP的緩存框架:APC和XCache。

 

緩存服務(wù)器

將HTML緩存在一臺獨立的緩存服務(wù)器中,利用memcached,可以很容易的通過TCP將緩存存儲在其他的服務(wù)器中,memcached同樣也是用內(nèi)存空間保存緩存數(shù)據(jù)的,可以減少不必要的I/O。memcached對每一個key都維護一個過期時間,一旦過期,會自動刪除這個key。

 

局部無緩存

局部無緩存允許在頁面中指定一塊包含動態(tài)數(shù)據(jù)的HTML代碼段,每次這些動態(tài)數(shù)據(jù)都需要實時計算,然后和其余的緩存合成為最終的網(wǎng)頁。

 

靜態(tài)化內(nèi)容

    動態(tài)內(nèi)容緩存中,每次用戶的請求都要送到動態(tài)程序,動態(tài)程序根據(jù)緩存的有效期決定是否輸出緩存。因此這種控制權(quán)的代價也是比較昂貴的。

    將動態(tài)頁面×××.php的緩存從cache目錄拿出來,放到同一個目錄中:×××.html,直接通過瀏覽器訪問對應(yīng)靜態(tài)頁面。

    當(dāng)然靜態(tài)化頁面也是需要動態(tài)程序來實現(xiàn)的,一般靜態(tài)化頁面的管理都是通過CMS(內(nèi)容管理系統(tǒng))來進行管理的。

    靜態(tài)化頁面的更新策略:

    1、在數(shù)據(jù)更新時,重新生成靜態(tài)化內(nèi)容;

    2、定時重新生成靜態(tài)化內(nèi)容;

 

局部靜態(tài)化

靜態(tài)化頁面可以通過SSI(服務(wù)器端包含)技術(shù)實現(xiàn)各個局部頁面的獨立更新。

SSI技術(shù)可以在任何一個主流web服務(wù)器中找到相應(yīng)的模塊,如Apache的mod_include和Lighttpd的mod_ssi。

名詞解釋:PV

PV (page view) 即頁面瀏覽量,或點擊量,通常是衡量一個 網(wǎng)絡(luò)新聞 頻道或網(wǎng)站甚至一條網(wǎng)絡(luò)新聞的主要指標。

定義:一個訪問者在24小時(0點到24點)內(nèi)到底看了你網(wǎng)站幾個頁面。需要注意的是:同一個人瀏覽你網(wǎng)站同一個頁面,不重復(fù)計算pv量。pv就是一個訪問者打開了你網(wǎng)站的幾個頁面。

pv的計算:當(dāng)一個訪問者訪問的時候,記錄他所訪問的頁面和對應(yīng)的IP,然后確定這個IP今天訪問了這個頁面沒有。如果你的網(wǎng)站到了23點,單純IP有60萬條的話,每個訪問者平均訪問了3個頁面,那么pv表的記錄就要有180萬條。

相關(guān)文章

  • Linux下如何查看版本信息的方法步驟

    Linux下如何查看版本信息的方法步驟

    這篇文章主要介紹了Linux下如何查看版本信息的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Linux實現(xiàn)自動登錄的實例講解

    Linux實現(xiàn)自動登錄的實例講解

    在本篇文章里小編給大家分享的是關(guān)于Linux實現(xiàn)自動登錄的相關(guān)實例以及知識點,需要的朋友們參考學(xué)習(xí)下。
    2019-10-10
  • Linux Centos7 磁盤的分區(qū)、掛載方式

    Linux Centos7 磁盤的分區(qū)、掛載方式

    這篇文章主要介紹了Linux Centos7 磁盤的分區(qū)、掛載方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 淺析Linux resolv.conf

    淺析Linux resolv.conf

    這篇文章主要介紹了Linux resolv.conf的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Linux,感興趣的朋友可以了解下
    2020-08-08
  • 詳解CentOS8更換yum源后出現(xiàn)同步倉庫緩存失敗的問題

    詳解CentOS8更換yum源后出現(xiàn)同步倉庫緩存失敗的問題

    這篇文章主要介紹了詳解CentOS8更換yum源后出現(xiàn)同步倉庫緩存失敗的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • GNU Parallel的具體使用

    GNU Parallel的具體使用

    這篇文章主要介紹了GNU Parallel的具體使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • linux mount報錯:you must specify the filesystem type的解決方法

    linux mount報錯:you must specify the filesystem type的解決方法

    這篇文章主要介紹了linux mount報錯:you must specify the filesystem type的解決方法,文中給出了詳細的解決方法示例,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Linux下強制殺死進程的方法詳解

    Linux下強制殺死進程的方法詳解

    這篇文章中我們給大家分享了關(guān)于Linux下強制殺死進程的方法技巧相關(guān)內(nèi)容,有興趣的朋友們可以參考了下。
    2018-09-09
  • linux開機啟動nodemanager步驟

    linux開機啟動nodemanager步驟

    這篇文章主要介紹了linux開機啟動nodemanager的步驟,大家參考使用吧
    2014-01-01
  • ubuntu lamp(apache+mysql+php) 環(huán)境搭建及相關(guān)擴展更新

    ubuntu lamp(apache+mysql+php) 環(huán)境搭建及相關(guān)擴展更新

    ubuntu lamp(apache+mysql+php) 環(huán)境搭建及相關(guān)擴展更新,需要的朋友可以參考下。
    2011-05-05

最新評論