Apache 效能配置優化

效能優化
前言
最近在進行apache效能優化設定。在修改apache配置,檔案之前需要備份原有的配置資料夾conf,這是網站架設的好習慣。以下的apache配置調優均是在red had的環境下進行的。
httpd 相關檢視命令瞭解
檢視當前安裝模組mpm(多路處理器)
檢視httpd程序數(即各個mpm模式下Apache能夠處理的併發請求數)
檢視Apache的併發請求數及其TCP連線狀態
檢視請求80服務的client ip按照連線數排序。
檢視apache詳細連結情況
檢測某一臺伺服器的埠是否開啟狀態[root@localhost ~]# nc -v -w 10 -z 172.20.206.147 25801
驗證apache2配置是否正確
apache模組啟用
模組介紹:Apache 各個模組功能 基本(B)模組預設包含,必須明確禁用;擴充套件(E)/實驗(X)模組預設不包含,必須明確啟用。
效能調優,模組啟用/關閉
apache2 擴充套件配置檔案說明
httpd-autoindex.conf 自動索引配置httpd-dav.conf WebDAV配置httpd-default.conf Apache的預設配置httpd-info.conf mod_status, mod_info模組配置httpd-languages.conf Apache多語言配置支援httpd-manual.conf 在網站上提供Apache手冊httpd-mpm.conf 多路處理模組配置檔案httpd-multilang-errordoc.conf 實現多語言的錯誤資訊httpd-ssl.conf SSL配置httpd-userdir.conf 配置使用者目錄httpd-vhosts.conf 虛擬主機配置
效能指標計算方法
提供下面這個公式,以供大家在平時或者日常需要進行的效能測試中作為一個參考。
計算平均的併發使用者數:
C = nL/T
C是平均的併發使用者數;n 是 login session 的數量;L 是 login session 的平均長度;T指考察的時間段長度。
併發使用者數峰值:
C’ ≈ C+3根號C
C’指併發使用者數的峰值,C就是公式(1)中得到的平均的併發使用者數。該公式的得出是假設使用者的 loginsession 產生符合泊松分佈而估算得到的。
apache2自帶的壓力測試工具ab
ab最常用的語法格式是這樣的
比如我們要對http://hostname:port/file.com下載10000次進行測試,併發訪問為60個,啟用HTTP KeepAlive功能,則訪問指令為[root@localhost ~]# ab -n 10000 -c 60 -k http://hostname:port/file.htm
Java的壓力測試工具Jmeter
Jmeter 是apache開發的基於Java的壓力測試工具。
apache多路處理器MPM
目前apache2.4版本已經event MPM納入正式版,不再是實驗狀態。安裝時,apache已經自動將event MPM一起安裝進去,通過apachectl -l可以檢視到event.c模組。由此可以看到,event MPM已經成為apache預設的MPM工作模式。
(1)啟用MPM
計算event的相關引數
(1):計算伺服器程序的平均記憶體
event MPM 與worker MPM區別
可以支援比worker更高的併發數,主要安裝在類unix/linux上的工作模式。event mpm是worker mpm的變種,但是具有比worker MPM更好的併發效能。在event mpm模式下,ssl是不被支援的,他會被切換到worker mpm下處理。event mpm在apache2.4版本時才被從實驗狀態轉化成標準應用。
apache 快取設定
apache涉及的快取模組有mod_cache、mod_disk_cache、mod_file_cache、mod_mem_cache。如果要使用快取必須啟用這四個快取模組。
同時修改快取設定後,必須重啟apache,重新整理快取,否則使用者訪問頁面不是最新頁面。
mod_cache、mod_disk_cache、mod_mem_cache、mod_file_cache關係- apache快取分為硬碟快取和記憶體快取- mod_disk_cache mod_mem_cache 都依賴於mod_cache- mod_file_cache是結合mod_cache使用,可以用於指定幾個頻繁訪問,但是變化不大的檔案
配置硬碟快取和記憶體快取的快取配置
檔案快取的應用
apache壓縮配置
apache通過
mod_deflate
模組實現頁面壓縮,要想進行頁面壓縮必須啟用以下兩個模組
LoadModule deflate_module modules/mod_deflate.so
頁面壓縮模組配置
ifmodule mod_deflate.c
keepAlive
在HTTP 1.0中和Apache伺服器的一次連線只能發出一次HTTP請求,而KeepAlive引數支援HTTP 1.1版本的一次連線,多次傳輸功能,這樣就可以在一次連線中發出多個HTTP請求。從而避免對於同一個客戶端需要開啟不同的連線。很多請求通過同一個 TCP連線來發送,可以節約網路和系統資源。
(1)keepAlive啟用場景
(2)keepAlive配置
問題集錦
1、載入
LoadModule authz_core_module modules/mod_authz_core.so
2、配置資訊後面不能跟隨註釋,註釋必須另起一行
CacheDefaultExpire takes one argument, The default time in seconds to cache a document
3、關鍵字錯誤 AddOutputFileByType 應該是
AddOutputFitlerByType
4、啟用
LoadModule setenvif_module modules/mod_setenvif.so
5、ifModule註釋不能跟在配置引數後面,否則會導致配置解析失敗
AH00526: Syntax error on line 558 of /usr/local/cp-httpd-2.4.18/conf/httpd.conf: