Apache深入優化----ab壓力測試

一、ab工具

  • ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache服務器進行網站訪問壓力測試,也可以對或其它類型的服務器進行壓力測試。

  • ab的原理:ab命令會創建多個併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。

  • ab命令對發出負載的計算機要求很低,不會佔用很高CPU和內存,但也能給目標服務器產生巨大的負載,使用的時候要注意,如果一次太多的負載,可能導致主機資源耗盡,嚴重時可能死機。

  • ab工具是裝完Apache服務就自帶的,位於 /usr/bin/ab 下

  • 命令格式:

例:ab -n 2000 -c 800 www.test.com/index.html
     //800爲併發數,2000爲總請求數
參數說明:
-n:測試會話中所執行的請求總數,默認時僅執行一個請求;
-c:併發產生的請求個數,默認是一個一次;
-t:測試所進行的最大秒數;
-v:設置顯示信息的詳細過程
  • ab測試結果關鍵參數說明:
    在這裏插入圖片描述

二、優化前壓測模擬

  • 手工編譯安裝Apache

1、掛載共享文件,並解壓到 /opt/目錄下。

mount.cifs //192.168.56.1/share /mnt   #192.168.56.1是我的宿主機IP地址
#解壓
tar -zxvf apr-1.4.6.tar.gz -C /opt/    
tar -zxvf apr-util-1.4.1.tar.gz -C /opt/
tar -zxvf httpd-2.4.2.tar.gz -C /opt/

#安裝包優化
cd /opt
mv apr-1.4.6/ httpd-2.4.2/srclib/apr
mv apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util

2、安裝編譯工具

yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel make

3、在 /opt/httpd-2.4.2 配置

cd httpd-2.4.2/

#有configure的文件,執行以下命令
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

4、make && make install

5、打開Apache的主配置文件

vim /usr/local/httpd/conf/httpd.conf
 
#修改域名和監聽地址
ServerName www.test.com:80

Listen 192.168.220.134:80
#Listen 80

6、開啓apache服務,關閉防火牆

#開啓apache服務
/usr/local/httpd/bin/apachectl start

#關閉防火牆
systemctl stop firewalld
setenforce 0

7、先給網頁站點插入圖片

cd /mnt/httpd
cp game.jpg /usr/local/httpd/htdocs/

cd /usr/local/httpd/htdocs/
#在index.html中引用圖片
vim index.html
<html>
<body>
<h1>It works!</h1>
<img src="game.jpg"/>   #增添這一行,把圖片加在網頁中
</body>
</html>

8、做域名解析

兩個方式:
1、安裝bind,做DNS正向解析。
2、指向hosts文件
echo "192.168.220.134 www.test.com">>/etc/hosts

9、優化前進行多次壓測,取平均值

#1、查看是否有工具ab
which ab
/usr/bin/ab
#2、查看網絡互通
ping www.test.com   //通即可壓測
#多次進行
ab -n 2000 -c 800 www.test.com/index.html

三、優化後壓測模擬

現在開始進行優化壓縮,與優化前的測試結果比對

打開Apache的主配置文件

vim /usr/local/httpd/conf/httpd.conf

#只更改一處:
LoadModule headers_ module modules/ mod_ headers. so    //默認開啓
LoadModule deflate_ module modules/mod_ deflate. so     //去掉前面#開啓deflate模塊
LoadModule filter_ module modules/mod_ filter. so       //默認開啓

#在文件末尾處添加
<IfModule mod_ deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/p .ng
DeflateCompressionLevel 6
SetOutputFilter DEFLATE
</IfModule>

#驗證apache的配置文件是否有語法錯誤
/usr/local/httpd/bin/apachectl -t
Syntax OK  

#啓動apache
執行 /usr/local/httpd/bin/apachectl restart   
或者service httpd restart 

優化後再進行壓測

ab -n 2000 -c 800 www.test.com/index.html

在這裏插入圖片描述
多次重啓服務測試

/usr/local/httpd/bin/apachectl stop   
/usr/local/httpd/bin/apachectl start   

在這裏插入圖片描述

四、模擬總結

  • 通過比較可以發現,結果參數發生了變化,在 現實網絡中的生產環境,可以根據承載的請求數等,頻繁的調整參數,以使Apache 發揮出最大的優化性能。
  • 在測試中,如果數據不太精準,可能是壓測的內容佔用太小,可以在網頁中多放幾張圖片增加
發佈了72 篇原創文章 · 獲贊 32 · 訪問量 4943
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章