apache效能最佳化

來源:互聯網
上載者:User

標籤:apache   效能最佳化   

Apache的配置是針對原先較低的伺服器來配置的,原先的配置顯然已經不適合了,所以今天開始研究下Apache配置的問題。

1. 首先要瞭解Apache採用的MPM(Multi -Processing Modules,多道處理模組)
MPM是Apache的核心,它的作用是管理網路連接、調度請求。

Apache2.0中MPM分為3種(perfork、worker、event)。perfork從Apache1.3中繼承下來的,它採用的是進程管理方式,所以它可以提供更可靠的效能和更好的相容性;worker是Apache2.0中新增加的方式,它採用了線程式控制制方法,可以比perfork更節約系統開銷、處理更多的資料量,但同時相容性並不是很好,很多舊的程式無法工作在worker下;event仍處於實驗階段,它為每個任務分配不同的進程池,目前不應該採用。
通過命令 httpd -l 可以擷取目前Apache採用的是哪種MPM
本文僅針對perfork方式進行討論

2. 瞭解perfork的工作方式

查看Apache2.0的設定檔httpd.conf,可以看到perfork的配置段,大致如下:

ServerLimit       256StartServers       5MinSpareServers   10MaxSpareServers   15MaxClients       256MaxRequestsPerChild  4000

當Apache被啟動時,Apache會自動建立StartServers個進程,並且儘力將空閑進程數保持在MinSpareServers和MaxSpareServers之間。
如果空閑進程小於MinSpareServers,Apache將會以大約每秒1個的速度建立進程。
如果空閑進程小於MaxSpareServers,Apache將會刪除多餘的空閑進程,釋放伺服器資源。
進程數的最大值由MaxClients控制,在Apache1.3中最大隻能設定為256,但在Apache2.0中,可以通過在配置開頭增加ServerLimit項目來突破256的限制,此時必須 MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild用來控制每個進程在處理了多少次請求之後自動銷毀,這個參數可以設定為0表示無限(即不銷毀進程)。

3. 最佳化perfork
首先,對於一個負載相對較高的網站來說,256的進程限制是不夠的,如果伺服器已經達到256的極限,那麼接下去的訪問就需要排隊,這也就是為什麼某些伺服器負載不高,但是訪問卻很慢的原因之一。所以首先應該瞭解伺服器在繁忙時的進程數量。
通過命令ps -ef|grep httpd|wc -l可以瞭解到當前系統中Apache進程數,通過設定ServerLimit和MaxClients來達到為伺服器軟擴容的目的。

然後,在訪問量高峰期,經常會出現的情況是突然之間發生非常多的並發串連,然後突然之間減少了很多訪問。如果Apache沒有準備足夠數量的預備進程,那訪問只能等待Apache每秒1個的新增進程,隨後又要將多餘的進程刪除,那Apache只能一直忙於建立和銷毀進程,大大地降低了訪問速度。可以適當增加StartServers、MinSpareServers、MaxSpareServers來使得Apache不需要一直忙於作無用功。

最後,強烈推薦MaxRequestsPerChild不要設定為0,設定為非0,可以保護Apache進程免遭記憶體流失的影響,因為你不知道運行在Apache上的應用程式在什麼時候會出錯導致記憶體流失。

設定完之後大致是這樣的:

ServerLimit       1000StartServers       30MinSpareServers   30MaxSpareServers   45MaxClients       1000MaxRequestsPerChild  4000


apache效能最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.