apache的prefork和workder模式
如何知道當(dāng)前apache的應(yīng)用模式
httpd -l ? 或者apache -l ? ? 如果有 prefork.c 那就是 prefork 方式,如果是 worker.c 那就是 work 模式還有一種模式event。
enent 模式只是適用于httpd 版本2.4.xxx,而2.2.xxx版本只是測(cè)試用,下面主要是討論前兩種模式。
# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
----------------------------------------------
<IfModule prefork.c>
StartServers ? ? ? 8
MinSpareServers ? ?5
MaxSpareServers ? 20
ServerLimit ? ? ?256
MaxClients ? ? ? 256
MaxRequestsPerChild ?4000
</IfModule>
[root@localhost ~]# ps auxf | grep httpd |wc -l
20
[root@localhost ~]# ps auxf | grep httpd
apache ? ?3856 ?0.2 ?3.8 ?58052 39336 ? ? ? ? ?S ? ?00:12 ? 2:25 ?\_ /usr/sbin/httpd
apache ? 20952 ?0.2 ?3.8 ?57992 39280 ? ? ? ? ?S ? ?04:04 ? 1:52 ?\_ /usr/sbin/httpd
apache ? 22231 ?0.2 ?3.8 ?57988 39200 ? ? ? ? ?S ? ?04:12 ? 1:57 ?\_ /usr/sbin/httpd
apache ? 22237 ?0.2 ?3.8 ?57960 39300 ? ? ? ? ?S ? ?04:12 ? 1:52 ?\_ /usr/sbin/httpd
apache ? 29719 ?0.2 ?3.8 ?57980 39020 ? ? ? ? ?S ? ?05:08 ? 1:47 ?\_ /usr/sbin/httpd
apache ? 29757 ?0.2 ?3.8 ?58292 39428 ? ? ? ? ?S ? ?05:09 ? 1:42 ?\_ /usr/sbin/httpd
apache ? 29816 ?0.2 ?2.3 ?43024 24228 ? ? ? ? ?S ? ?05:09 ? 1:41 ?\_ /usr/sbin/httpd
apache ? 25362 ?0.2 ?1.7 ?37184 18408 ? ? ? ? ?S ? ?11:45 ? 0:58 ?\_ /usr/sbin/httpd
apache ? 30748 ?0.2 ?1.5 ?34404 15600 ? ? ? ? ?S ? ?12:22 ? 0:42 ?\_ /usr/sbin/httpd
apache ? ?5892 ?0.2 ?1.3 ?32980 13840 ? ? ? ? ?S ? ?12:57 ? 0:35 ?\_ /usr/sbin/httpd
apache ? ?6198 ?0.2 ?1.4 ?33408 14408 ? ? ? ? ?S ? ?12:57 ? 0:35 ?\_ /usr/sbin/httpd
apache ? ?6219 ?0.2 ?1.4 ?34160 14948 ? ? ? ? ?S ? ?12:57 ? 0:38 ?\_ /usr/sbin/httpd
apache ? ?7211 ?0.2 ?1.3 ?32772 13804 ? ? ? ? ?S ? ?13:00 ? 0:33 ?\_ /usr/sbin/httpd
apache ? ?7727 ?0.2 ?1.3 ?33072 14036 ? ? ? ? ?S ? ?13:02 ? 0:35 ?\_ /usr/sbin/httpd
apache ? 19977 ?0.2 ?1.3 ?33240 14104 ? ? ? ? ?S ? ?14:26 ? 0:23 ?\_ /usr/sbin/httpd
apache ? 13485 ?0.2 ?1.3 ?33232 13788 ? ? ? ? ?S ? ?16:16 ? 0:10 ?\_ /usr/sbin/httpd
apache ? 13712 ?0.2 ?1.3 ?33044 13584 ? ? ? ? ?S ? ?16:18 ? 0:09 ?\_ /usr/sbin/httpd
apache ? 14653 ?0.2 ?1.3 ?32660 13620 ? ? ? ? ?S ? ?16:22 ? 0:08 ?\_ /usr/sbin/httpd
apache ? 21534 ?0.1 ?1.3 ?32656 13508 ? ? ? ? ?S ? ?17:06 ? 0:02 ?\_ /usr/sbin/httpd
apache ? 22834 ?0.1 ?1.2 ?32712 13260 ? ? ? ? ?S ? ?17:19 ? 0:00 ?\_ /usr/sbin/httpd
如果你的系統(tǒng)內(nèi)存不是很充足或者運(yùn)行有其他的服務(wù),把MaxSpareServers設(shè)置小一些可以為
其他服務(wù)空出一些內(nèi)存
---------------------------------------------關(guān)于Apache的prefork和worker工作模式
prefork模式
這個(gè)多路處理模塊(MPM)實(shí)現(xiàn)了一個(gè)非線程型的、預(yù)派生的web服務(wù)器,它的工作方式類似于Apache 1.3。它適合于沒有線程安全庫(kù),需要避免線程兼容性問題的系統(tǒng)。它是要求將每個(gè)請(qǐng)求相互獨(dú)立的情況下最好的MPM,這樣若一個(gè)請(qǐng)求出現(xiàn)問題就不會(huì)影響到其他請(qǐng)求。
這個(gè)MPM具有很強(qiáng)的自我調(diào)節(jié)能力,只需要很少的配置指令調(diào)整。最重要的是將MaxClients設(shè)置為一個(gè)足夠大的數(shù)值以處理潛在的請(qǐng)求高峰,同時(shí)又不能太大,以致需要使用的內(nèi)存超出物理內(nèi)存的大小。
worker模式
此多路處理模塊(MPM)使網(wǎng)絡(luò)服務(wù)器支持混合的多線程多進(jìn)程。由于使用線程來(lái)處理請(qǐng)求,所以可以處理海量請(qǐng)求,而系統(tǒng)資源的開銷小于基于進(jìn)程的MPM。但是,它也使用了多進(jìn)程,每個(gè)進(jìn)程又有多個(gè)線程,以獲得基于進(jìn)程的MPM的穩(wěn)定性。
控制這個(gè)MPM的最重要的指令是,控制每個(gè)子進(jìn)程允許建立的線程數(shù)的ThreadsPerChild指令,和控制允許建立的總線程數(shù)的MaxClients指令。
rpm -ql httpd |grep bin 查看下所在目錄
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
prefork和worker模式的切換
1.將當(dāng)前的prefork模式啟動(dòng)文件改名
mv httpd httpd.prefork
2.將worker模式的啟動(dòng)文件改名
mv httpd.worker httpd
3.修改Apache配置文件
vi /usr/local/apache2/conf/extra/httpd-mpm.conf
找到里邊的如下一段,可適當(dāng)修改負(fù)載等參數(shù):
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
4.重新啟動(dòng)服務(wù)
service httpd restart
即可換成worker方式啟動(dòng)httpd
處于穩(wěn)定性和安全性考慮,不建議更換httpd的運(yùn)行方式,使用系統(tǒng)默認(rèn)prefork即可。另外很多php模塊不能工作在worker模式下,例如redhat linux自帶的php也不能支持線程安全。所以最好不要切換工作模式。
prefork和worker模式的比較
prefork模式使用多個(gè)子進(jìn)程,每個(gè)子進(jìn)程只有一個(gè)線程。每個(gè)進(jìn)程在某個(gè)確定的時(shí)間只能維持一個(gè)連接。在大多數(shù)平臺(tái)上,Prefork MPM在效率上要比Worker MPM要高,但是內(nèi)存使用大得多。prefork的無(wú)線程設(shè)計(jì)在某些情況下將比worker更有優(yōu)勢(shì):它可以使用那些沒有處理好線程安全的第三方模塊,并 且對(duì)于那些線程調(diào)試?yán)щy的平臺(tái)而言,它也更容易調(diào)試一些。
worker模式使用多個(gè)子進(jìn)程,每個(gè)子進(jìn)程有多個(gè)線程。每個(gè)線程在某個(gè)確定的時(shí)間只能維持一個(gè)連接。通常來(lái)說(shuō),在一個(gè)高流量的HTTP服務(wù)器 上,Worker MPM是個(gè)比較好的選擇,因?yàn)閃orker MPM的內(nèi)存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一個(gè)線程崩潰,整個(gè)進(jìn)程就會(huì)連同其所有線程一起”死掉”.由于線程共享內(nèi)存空間,所以一個(gè)程序在運(yùn)行時(shí)必須被系統(tǒng)識(shí)別為”每 個(gè)線程都是安全的”。
總的來(lái)說(shuō),prefork方式速度要稍高于worker,然而它需要的cpu和memory資源也稍多于woker。
prefork模式配置詳解
<IfModule mpm_prefork_module>
ServerLimit 256 ?
StartServers 5 ? 指定服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù)量,prefork默認(rèn)為5。
MinSpareServers 5
MaxSpareServers 10
MaxClients 256 ? 限定同一時(shí)間客戶端最大接入請(qǐng)求的數(shù)量(單個(gè)進(jìn)程并發(fā)線程數(shù)),默認(rèn)為256 。任何超過MaxClients限制的請(qǐng)求都將進(jìn)入等候隊(duì)列,一旦一個(gè)鏈接被釋放,隊(duì)列中的請(qǐng)求將得到服務(wù)。要增大這個(gè)值,你必須同時(shí)增大ServerLimit。
MaxRequestsPerChild 0
</IfModule>
ServerLimit
StartServers:默認(rèn)的MaxClient最大是256個(gè)線程,如果想設(shè)置更大的值,就的加上ServerLimit這個(gè)參數(shù)。20000是ServerLimit這個(gè)參數(shù)的最大值。如果需要更大,則必須編譯apache,此前都是不需要重新編譯Apache。生效前提:ServerLimit必須放在其他指令的前面
MinSpareServers:指定空閑子進(jìn)程的最小數(shù)量,默認(rèn)為5。 如果當(dāng)前空閑子進(jìn)程數(shù)少于MinSpareServers ,那么Apache將以最大每秒一個(gè)的速度產(chǎn)生新的子進(jìn)程。此參數(shù)不要設(shè)的太大。
MaxSpareServers:設(shè)置空閑子進(jìn)程的最大數(shù)量,默認(rèn)為10。如果當(dāng)前有超過MaxSpareServers數(shù)量的空閑子進(jìn)程,那么父進(jìn)程將殺死多余的子進(jìn)程。此參數(shù)不要設(shè)的 太大。如果你將該指令的值設(shè)置為比MinSpareServers小,Apache將會(huì)自動(dòng)將其修改成”MinSpareServers+1″。
MaxRequestsPerChild
每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量,默認(rèn)為10000.到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會(huì)結(jié)束。如果 MaxRequestsPerChild為”0″,子進(jìn)程將永遠(yuǎn)不會(huì)結(jié)束。將MaxRequestsPerChild設(shè)置成非零值有兩個(gè)好處:
1.可以防止(偶然的)內(nèi)存泄漏無(wú)限進(jìn)行,從而耗盡內(nèi)存。
2.給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。
<IfModule mpm_prefork_module>
? ?ServerLimit ? ? ? ? ? 2000
? ?StartServers ? ? ? ? ?10
? ?MinSpareServers ? ? ? 10
? ?MaxSpareServers ? ? ?15
? ?MaxClients ? ? ? ? ?1500
? ?MaxRequestsPerChild ? 10000
</IfModule>
worker模式配置詳解
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
StartServers
服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù),默認(rèn)值是”3″。
MaxClients
允許同時(shí)伺服的最大接入請(qǐng)求數(shù)量(最大線程數(shù)量)。任何超過MaxClients限制的請(qǐng)求都將進(jìn)入等候隊(duì)列。默認(rèn)值是”400″ ,16(ServerLimit)乘以25(ThreadsPerChild)的結(jié)果。因此要增加MaxClients的時(shí)候,你必須同時(shí)增加 ServerLimit的值。
MinSpareThreads
最小空閑線程數(shù),默認(rèn)值是”75″。這個(gè)MPM將基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太少,子進(jìn)程將產(chǎn)生新的空閑線程。
MaxSpareThreads
設(shè)置最大空閑線程數(shù)。默認(rèn)值是”250″。這個(gè)MPM將基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太多,子進(jìn)程將殺死多余的空閑線程。 MaxSpareThreads的取值范圍是有限制的。Apache將按照如下限制自動(dòng)修正你設(shè)置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。
ThreadsPerChild
每個(gè)子進(jìn)程建立的常駐的執(zhí)行線程數(shù)。默認(rèn)值是25。子進(jìn)程在啟動(dòng)時(shí)建立這些線程后就不再建立新的線程了。
MaxRequestsPerChild
設(shè)置每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會(huì)結(jié)束。如果MaxRequestsPerChild為”0″,子進(jìn)程將永遠(yuǎn)不會(huì)結(jié)束。將MaxRequestsPerChild設(shè)置成非零值有兩個(gè)好處:
1.可以防止(偶然的)內(nèi)存泄漏無(wú)限進(jìn)行,從而耗盡內(nèi)存。
2.給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。
注意對(duì)于KeepAlive鏈接,只有第一個(gè)請(qǐng)求會(huì)被計(jì)數(shù)。事實(shí)上,它改變了每個(gè)子進(jìn)程限制最大鏈接數(shù)量的行為。
-------------------------------------------apache的prefork和workder模式的性能
選擇prefork還是worker可以在編譯時(shí)使用–with-mpm=MPM參數(shù)指定,默認(rèn)為prefork,prefork采用預(yù)派生子進(jìn)程方式,用單獨(dú)的子進(jìn)程來(lái)處理 不同的請(qǐng)求,進(jìn)程之間彼此獨(dú)立。在make編譯和make
install安裝后,使用httpd -l來(lái)確定當(dāng)前使用的MPM是prefork.c。查看httpd-mpm.conf配置文件,里面包含如下默認(rèn)的配置段:
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
IXDBA.NET技術(shù)社區(qū)
</IfModule>
prefork
控制進(jìn)程在最初建立“StartServers”個(gè)子進(jìn)程后,為了滿足MinSpareServers設(shè)置的需要?jiǎng)?chuàng)建一個(gè)進(jìn)程,等待一秒鐘,繼續(xù)創(chuàng)建兩個(gè),再等待一秒鐘,繼續(xù)創(chuàng)建四個(gè)……如此按指數(shù)級(jí)增加創(chuàng)建的進(jìn)程數(shù)
,最多達(dá)到每秒32個(gè),直到滿足MinSpareServers設(shè)置的值為止。這種模式可以不必在請(qǐng)求到來(lái)時(shí)再產(chǎn)生新的進(jìn)程,從而減小了系統(tǒng)開銷以增加性能。MaxSpareServers設(shè)置了最大的空閑進(jìn)程數(shù),如果空
閑進(jìn)程數(shù)大于這個(gè)值,Apache會(huì)自動(dòng)kill掉一些多余進(jìn)程。這個(gè)值不要設(shè)得過大,但如果設(shè)的值比MinSpareServers小,Apache會(huì)自動(dòng)把其調(diào)整為 MinSpareServers+1。
如果站點(diǎn)負(fù)載較大,可考慮同時(shí)加大MinSpareServers和MaxSpareServers。 MaxRequestsPerChild設(shè)置的是每個(gè)子進(jìn)程可處理的請(qǐng)求數(shù)。每個(gè)子進(jìn)程在處理了“MaxRequestsPerChild”個(gè)請(qǐng)求后將自動(dòng)銷
毀。0意味著無(wú)限,即子進(jìn)程永不銷毀。雖然缺省設(shè)為0可以使每個(gè)子進(jìn)程處理更多的請(qǐng)求,但如果設(shè)成非零值也有兩點(diǎn)重要的好處:1、可防止意外的內(nèi)存泄漏。2、在服務(wù)器負(fù)載下降的時(shí)侯會(huì)自動(dòng)減少
子進(jìn)程數(shù)。因此,可根據(jù)服務(wù)器的負(fù)載來(lái)調(diào)整這個(gè)值。MaxClients是這些指令中最為重要的一個(gè),設(shè)定的是 Apache可以同時(shí)處理的請(qǐng)求,是對(duì)Apache性能影響最大的參數(shù)。其缺省值150是遠(yuǎn)遠(yuǎn)不夠的,
如果請(qǐng)求總數(shù)已達(dá)到這個(gè)值(可通過ps -ef|grep http|wc -l來(lái)確認(rèn)),那么后面的請(qǐng)求就要排隊(duì),直到某個(gè)已處理請(qǐng)求完畢。這就是系統(tǒng)資源還剩下很多而HTTP訪問卻很慢的主要原因。雖然理論上這
個(gè)值越大,可以處理的請(qǐng)求就越多,但Apache默認(rèn)的限制不能大于256。ServerLimit指令無(wú)須重編譯Apache就可以加大MaxClients。
<IfModule prefork.c>
ServerLimit ?10000
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 10000
MaxRequestsPerChild 0
</IfModule>
Worker
相對(duì)于prefork,worker全新的支持多線程和多進(jìn)程混合模型的MPM。由于使用線程來(lái)處理,所以可以處理相對(duì)海量的請(qǐng)求,而系統(tǒng)資源的開銷要小于基于進(jìn)程的服務(wù)器。但是,worker也使用了多進(jìn)程,
每個(gè)進(jìn)程又生成多個(gè)線程,以獲得基于進(jìn)程服務(wù)器的穩(wěn)定性。在configure –with-mpm=worker后,進(jìn)行make編譯、make install安裝。在缺省生成的httpd-mpm.conf中有以下默認(rèn)配置段:
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Worker 由主控制進(jìn)程生成“StartServers”個(gè)子進(jìn)程,每個(gè)子進(jìn)程中包含固定的ThreadsPerChild線程數(shù),各個(gè)線程獨(dú)立地處理請(qǐng)求。同樣,為了不在請(qǐng)求到來(lái)時(shí)再生成線程,MinSpareThreads和
MaxSpareThreads設(shè)置了最少和最多的空閑線程數(shù);而MaxClients 設(shè)置了同時(shí)連入的clients最大總數(shù)。如果現(xiàn)有子進(jìn)程中的線程總數(shù)不能滿足負(fù)載,控制進(jìn)程將派生新的子進(jìn)程。MinSpareThreads和
MaxSpareThreads的最大缺省值分別是75和250。這兩個(gè)參數(shù)對(duì)Apache的性能影響并不大,可以按照實(shí)際情況相應(yīng)調(diào)節(jié)。
ThreadsPerChild是worker MPM中與性能相關(guān)最密切的指令。ThreadsPerChild的最大缺省值是64,如果負(fù)載較大,64也是不夠的。這時(shí)要顯式使用 ThreadLimit指令,它的最大缺省值是20000。Worker模
式下所能同時(shí)處理的請(qǐng)求總數(shù)是由子進(jìn)程總數(shù)乘以ThreadsPerChild 值決定的,應(yīng)該大于等于MaxClients。如果負(fù)載很大,現(xiàn)有的子進(jìn)程數(shù)不能滿足時(shí),控制進(jìn)程會(huì)派生新的子進(jìn)程。默認(rèn)最大的子進(jìn)程
總數(shù)是16,加大時(shí)也需要顯式聲明ServerLimit(最大值是20000)。需要注意的是,如果顯式聲明了ServerLimit,那么它乘以 ThreadsPerChild的值必須大于等于MaxClients,而且MaxClients必須是
ThreadsPerChild的整數(shù)倍,否則 Apache將會(huì)自動(dòng)調(diào)節(jié)到一個(gè)相應(yīng)值。
<IfModule worker.c>
ServerLimit 25
ThreadLimit 200
StartServers 3
MaxClients 2000
MinSpareThreads 50
MaxSpareThreads 200
ThreadsPerChild 100
MaxRequestsPerChild 0
</IfModule>
下面是利用Apache自帶的測(cè)試工具ab對(duì)Server進(jìn)行測(cè)試的情況(設(shè)定請(qǐng)求的index頁(yè)面為6bytes),cpu%為cpu占用率,mem為內(nèi)存使用量(M為單位),RequestsPerSecond為每秒處理的請(qǐng)求數(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
相對(duì)來(lái)說(shuō),prefork方式速度要稍高于worker,然而它需要的cpu和memory資源也稍多于woker。
如何知道當(dāng)前apache的應(yīng)用模式
httpd -l ?如果有prefork.c 那就是prefork方式,如果是worker.c那就是work模式。
忙的原因需要你對(duì)你網(wǎng)站進(jìn)行行為分析。一般是分析日志。然后再根據(jù)實(shí)際情況做判斷。
? 我曾經(jīng)給個(gè)朋友做過優(yōu)化。當(dāng)時(shí)他的機(jī)器每到晚上LOAD基本都是幾十。慢的很。我對(duì)日志進(jìn)行了分析。發(fā)現(xiàn)有很多爬蟲在訪問動(dòng)態(tài)的頁(yè)面同時(shí)有很多IP在惡意的盜取圖片數(shù)據(jù)等。導(dǎo)致大量的資源被消
耗掉。最后我采取了適當(dāng)措施?,F(xiàn)在LOAD基本都在1以下。所以分析訪問行為是很重要的盲目的調(diào)整APACHE的連接參數(shù)意義真的是不大。希望我的話能夠修正大家的一些不正確的想法。
轉(zhuǎn)載于:https://blog.51cto.com/oybw88/1366329
總結(jié)
以上是生活随笔為你收集整理的apache的prefork和workder模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CGI、FastCGI 知识总结
- 下一篇: 【javascript基础】8、闭包