亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優(yōu)質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Apache Prefork和Worker模式的性能比較測試

添加時間:2011-2-26  添加: admin 
 Apache在配置編譯時可以自主的選擇想要使用的MPM模塊,使用./configure --with-mpm=MPM命令。我們主要了解prefork和worker這兩種MPM模塊。 Prefork
如果不用“--with-mpm”顯式指定某種MPM,prefork就是Unix平臺上缺省的MPM。它所采用的預派生子進程方式,用單獨的子進程來處理不同的請求,進程之間彼此獨立。在make編譯和make install安裝后,使用httpd -l來確定當前使用的
MPM是prefork.c。查看httpd-mpm.conf配置文件,里面包含如下默認的配置段:
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
prefork控制進程在最初建立“StartServers”個子進程后,為了滿足MinSpareServers設置的需要創(chuàng)建一個進程,等待一秒鐘,繼續(xù)創(chuàng)建兩個,再等待一秒鐘,繼續(xù)創(chuàng)建四個……如此按指數(shù)級增加創(chuàng)建的進程數(shù),最多達到每秒32個,直到滿足MinSpareServers設置的值為止。這種模式可以不必在請求到來時再產生新的進程,從而減小了系統(tǒng)開銷以增加性能。MaxSpareServers設置了最大的空閑進程數(shù),如果空閑進程數(shù)大于這個值,Apache會自動kill掉一些多余進程。這個值不要設得過大,但如果設的值比MinSpareServers小,Apache會自動把其調整為MinSpareServers+1。如果站點負載較大,可考慮同時加大MinSpareServers和MaxSpareServers。MaxRequestsPerChild設置的是每個子進程可處理的請求數(shù)。每個子進程在處理了“MaxRequestsPerChild”個請求后將自動銷毀。0意味著無限,即子進程永不銷毀。雖然缺省設為0可以使每個子進程處理更多的請求,但如果設成非零值也有兩點重要的好處:1、可防止意外的內存泄漏。2、在服務器負載下降的時侯會自動減少子進程數(shù)。因此,可根據服務器的負載來調整這個值。MaxClients是這些指令中最為重要的一個,設定的是Apache可以同時處理的請求,是對Apache性能影響最大的參數(shù)。其缺省值150是遠遠不夠的,如果請求總數(shù)已達到這個值(可通過ps -ef|grep http|wc -l來確認),那么后面的請求就要排隊,直到某個已處理請求完畢。這就是系統(tǒng)資源還剩下很多而HTTP訪問卻很慢的主要原因。雖然理論上這個值越大,可以處理的請求就越多,但Apache默認的限制不能大于256。ServerLimit指令無須重編譯Apache就可以加大MaxClients。ServerLimt應該放在第一個位置,放在其他指令之間不起作用(不明白原因)。
<IfModule prefork.c>
ServerLimit  10000
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 10000
MaxRequestsPerChild 0
</IfModule> Worker
相對于prefork,worker全新的支持多線程和多進程混合模型的MPM。由于使用線程來處理,所以可以處理相對海量的請求,而系統(tǒng)資源的開銷要小于基于進程的服務器。但是,worker也使用了多進程,每個進程又生成多個線程,以獲得基于進程服務器的穩(wěn)定性。在configure --with-mpm=worker后,進行make編譯、make install安裝。在缺省生成的httpd-mpm.conf中有以下默認配置段:
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Worker由主控制進程生成“StartServers”個子進程,每個子進程中包含固定的ThreadsPerChild線程數(shù),各個線程獨立地處理請求。同樣,為了不在請求到來時再生成線程,MinSpareThreads和MaxSpareThreads設置了最少和最多的空閑線程數(shù);而MaxClients設置了同時連入的clients最大總數(shù)。如果現(xiàn)有子進程中的線程總數(shù)不能滿足負載,控制進程將派生新的子進程。MinSpareThreads和MaxSpareThreads的最大缺省值分別是75和250。這兩個參數(shù)對Apache的性能影響并不大,可以按照實際情況相應調節(jié)。ThreadsPerChild是worker MPM中與性能相關最密切的指令。ThreadsPerChild的最大缺省值是64,如果負載較大,64也是不夠的。這時要顯式使用ThreadLimit指令,它的最大缺省值是20000。Worker模式下所能同時處理的請求總數(shù)是由子進程總數(shù)乘以ThreadsPerChild值決定的,應該大于等于MaxClients。如果負載很大,現(xiàn)有的子進程數(shù)不能滿足時,控制進程會派生新的子進程。默認最大的子進程總數(shù)是16,加大時也需要顯式聲明ServerLimit(最大值是20000)。需要注意的是,如果顯式聲明了ServerLimit,那么它乘以ThreadsPerChild的值必須大于等于MaxClients,而且MaxClients必須是ThreadsPerChild的整數(shù)倍,否則Apache將會自動調節(jié)到一個相應值。
<IfModule worker.c>
ServerLimit 25
ThreadLimit 200
StartServers 3
MaxClients 2000
MinSpareThreads 50
MaxSpareThreads 200
ThreadsPerChild 100
MaxRequestsPerChild 0
</IfModule> 下面是利用Apache自帶的測試工具ab對Server進行測試的情況(設定請求的index頁面為6bytes),cpu%為cpu占用率,mem為內存使用量(M為單位),RequestsPerSecond為每秒處理的請求數(shù)。
1、Prefor方式
  (ServerLimit,StartServer,MinSpareServers,MaxSpareServers,MaxClients,MaxRequestPerChild)            

-n/-c(ab參數(shù)) Cpu% Mem Requestspersecond
(-,5,5,10,150,0)
100000/100 28.8 285 8434
100000/200 29.2 304 8032
100000/500 25.3 323 7348
100000/1000 24.4 330 5886
(10000,5,5,10,500,0)
100000/100 28.7 371 8345
100000/200 27.4 389 7929
100000/500 24.9 417 7229
100000/1000 23.4 437 6676
(10000,5,5,10,1000,0)
100000/100 28.8 408 8517
100000/200 27.0 422 8045
100000/500 24.2 455 7236
100000/1000 22.5 470 6570
(10000,5,5,10,1500,0)
100000/100 29.6 330 8407
100000/200 28.1 349 8014
100000/500 26.4 380 7290
100000/1000 24.0 400 6686

2、Worker方式
(ServerLimt,Threadlimt,Startservers,MaxClients,MinspareThread,MaxspareThread,ThreadperChild,MaxRequestPerChild)
                   

-n/-c(ab參數(shù)) cpu% mem RequestsperSecond
(50,500,5,10000,50,200,200,0)
100000/100  18.6 188 6020
100000/200 20.1 195 5892
100000/500 19.8 209 5708
100000/1000 22.2 218 6081
(100,500,5,10000,50,200,100,0)
100000/100  24.5 240 6919
100000/200 23.6 247 6798
100000/500 24.6 254 6827
100000/1000 22.3 271 6114
(200,500,5,10000,50,200,50,0)
100000/100  27.3 301 7781
100000/200 27.4 307 7789
100000/500 26.0 320 7141
100000/1000 21.8 344 6110

相對來說,prefork方式速度要稍高于worker,然而它需要的cpu和memory資源也稍多于woker。


關鍵字:Apache Prefork Worker 模式 性能比較

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站