国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

配置Apache 1.3或者Apache 2.0服務器的5個技巧

2024-08-27 18:26:03
字體:
來源:轉載
供稿:網友

本文提出了配置Apache 1.3或者Apache 2.0服務器的5個技巧。我們將闡述以下的配置方案:調整Apache的accept()串行化、Apache 2.0線程、采用mod_ssl的SSL會話緩存、優化keep-alive超時值以及檢查服務器負載以平衡服務器可處理的請求量等。

AcceptMutex

Apache 1.3.21和Apache 2.0中引入了AcceptMutex 指示符,該指示符給調節服務器的性能帶來了一個難得的機會。該指示符配置Apache的accept()處理方式。在某些只有一個偵聽器的系統上是不需要接受阻塞的。這就叫Single Listen Unserialized Accept (SLUA)??墒?,對那些具有多個偵聽器的配置或者在接受系統調用函數上(不管有多少個偵聽器)存在thundering herd問題的操作系統上,連接接受程序就必須進行串行化了。

Covalent的Sander Temme對accept()阻塞策略進行了一定程度的性能分析。這份報告總結了Apache 1.3.21在這一方面的有關調整策略,如下所示:

Irix的uslock (uslock)
POSIX跨進程阻塞 (pthread)
SystemV Semaphores (sysvsem)
fcntl()阻塞(fcntl)
flock()阻塞 (flock)
OS/2 Semaphores (os2sem)
TPF 阻塞 (tpfcore)
None(無)

盡管采用AcceptMutex none也是可能的,但是你的系統在這種配置下有可能受到thundering herd問題和死鎖的困擾。這些問題會導致服務器減慢處理速度乃至停止響應。none選項絕對不能用在實際系統上。在非正式的測試下,pthread鎖應該是最好的解決方案。然而,pthread跨進程阻塞并不是所有系統都可用的。

采用2.0版和線程(worker MPM)

Apache 2.0有一個顯著的改進特性就是支持線程。某些操作系統,比如Solaris,在采取線程技術的條件下可以顯著地改進系統性能。而其他操作系統,比如Linux,其性能改進就可能并不是很顯著。

在采用Apache 2.0的情況下,處理請求的策略已經理論化了,這就是所謂的MPM:多進程模式(Multi Process Model)。而老一些的Apache 1.3模式則以prefork MPM為代表,在Unix平臺上就是默認MPM for 2.0 。在這種模式下有一個獨立的進程處理每一請求??墒牵偃缒憔幾gApache 2.0的時候帶 --with-mpm=worker 選項,那么服務器請求就會由線程來處理。這種方法在精心設計線程實現方案的情況下會大大降低操作系統處理請求的負載。

SSL會話緩存

如果你對Apache 1.3或者在Apache 2.0采用了mod_ssl補充插件(在在Apache 2.0中則已經包含在內),那么你可以采用會話緩存提升系統性能。這種改進會顯著降低SSL連接負載。設置會話緩存有三種途徑:

DBM (dbm),這是一種在磁盤上存儲項目的常用格式(htpasswd可以DBM格式存儲密碼)

共享內存循環緩存(shm 或者shmcb)

共享內存哈系表(shmht)

在采用以上選項的時候需要指定文件路徑。在使用DBM變量的情況下,文件將被寫入磁盤。而對共享內存變量來說,文件將被用做操作系統優選共享內存機制的存儲備份。值得注意的是,大多數操作系統不允許共享內存段建立在通過網絡裝載(mount)的驅動器上,比如NFS等,所以必須給服務器提供文件路徑。

我們建議你采用共享內存,不過,在那些沒有共享內存的平臺上則不妨采用DBM方案。

--------------------------------------------------------------------------------
SSL會話緩存的更多信息和有關語法請見:
modssl.org
Apache.org

--------------------------------------------------------------------------------

KeepAliveTimeout

假設某位用戶在閱讀網站上的某一網頁,然后它單擊某一導向站內另一網頁的鏈接。假如這一過程發生在KeepAliveTimeout 周期之內(默認為15秒),那么就不必創建新的TCP服務器連接。這樣做大大減少了計算機的負載。然而,在這一時間區域內服務器也不能處理更多的請求。KeepAliveTimeout周期過后,服務器才可以處理來自不同客戶機的最新請求。因此,你必須增加請求進程或者線程的數量以滿足空閑請求的需要。這個值應該進行仔細的調整以達到最佳狀態。

采用mod_status

采用mod_status檢查服務器負載情況可以從中獲得調整服務器性能的重要信息。

apachectl status命令是檢查服務器狀態的快捷途徑。假如該命令的輸出結果并沒有始終如一的顯示出可用的工作進程。那么最好增大MinSpareServers或者MinSpareThreads值(在Apache 2.0采用線程化MPM的情況下)。同時你可能還需要增大MaxClients值。

--------------------------------------------------------------------------------

有關mod_status和Apache模塊mpm_common的更多信息請參考mod_status 和mpm_common 。

--------------------------------------------------------------------------------

小結

你完全可以采用本文提出的技巧使服務器的性能最大化同時維持網站的正常運行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金湖县| 乡城县| 上杭县| 大余县| 三亚市| 宜兰县| 西和县| 浮梁县| 宁波市| 思南县| 福泉市| 柞水县| 浙江省| 仪征市| 抚宁县| 塔城市| 玉门市| 大竹县| 濉溪县| 泰安市| 文水县| 蓬溪县| 高阳县| 新宁县| 卓尼县| 调兵山市| 西青区| 苍山县| 宜州市| 成都市| 灌阳县| 三门峡市| 南投市| 菏泽市| 焉耆| 平利县| 通榆县| 桂阳县| 彭州市| 临沭县| 汤原县|