国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Apache服務(wù)器性能調(diào)優(yōu)

2017-03-23 00:53:34 4657

Apache服務(wù)器性能調(diào)優(yōu)


Apache配置對(duì)您的服務(wù)器的性能有重大影響。 提高服務(wù)器性能的最簡(jiǎn)單方法是關(guān)閉不需要的?塊。 本指南涵蓋Apache模塊,關(guān)閉哪些模塊以及其他Apache性能調(diào)整選項(xiàng)。

工具



有多種工具可以幫助確定是否需要更改資源設(shè)置,包括top命令和負(fù)載測(cè)試程序Siege。 使用以下命令查看使用統(tǒng)計(jì)信息

echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20


更詳細(xì)用于幫助了解Apache資源使用情況的工具包括Apache mod_status和Apache2Buddy。

Apache mod_status

Apache mod_status通過生成詳細(xì)的狀態(tài)頁面來顯示與入站服務(wù)器連接相關(guān)的信息。示例如下:

1.打開您的網(wǎng)站的配置文件。 此文件位于Debian / Ubuntu系統(tǒng)上的/etc/apache2/sites-available/example.com.conf或CentOS / Fedora系統(tǒng)上的/etc/httpd/conf.d/vhost.conf。

2.將以下內(nèi)容添加到塊中:

/etc/apache2/sites-available/example.com.conf (Debian/Ubuntu)

/etc/httpd/conf.d/vhost.conf (CentOS/Fedora)

<Location /server-status>
  SetHandler server-status
  Order Deny,Allow
  Deny from all
  Allow from localhost
</Location>

3.Apache mod_status還提供了一個(gè)名為ExtendedStatus的選項(xiàng),該選項(xiàng)提供有關(guān)向Apache發(fā)送的每個(gè)請(qǐng)求的額外信息。 要啟用ExtendedStatus編輯您的Apache配置文件:

/etc/apache2/apache2.conf (Debian/Ubuntu)

/etc/httpd/confd/httpd.conf (CentOS/Fedora)

ExtendedStatus On

4.重啟Apache

Debian/Ubuntu:

service apache2 restart

CentOS/Fedora:

/bin/systemctl reload httpd.service

5.要查看生成的文件,請(qǐng)下載Lynx:

Debian/Ubuntu:

apt-get install lynx

Fedora/CentOS:

yum install lynx

6.查看狀態(tài)頁

lynx http://www.tjdsmy.cn/server-status


Apache2Buddy

Apache2Buddy腳本與MySQLTuner類似,它檢查您的Apache設(shè)置,并根據(jù)您的Apache進(jìn)程內(nèi)存和總體RAM提出建議。 雖然它是一個(gè)相當(dāng)基本的程序,專注于MaxClients指令,不過Apache2Buddy相當(dāng)有用,可以通過單個(gè)命令運(yùn)行:

curl -L http://www.tjdsmy.cn/ | perl

多處理模塊



Apache提供兩個(gè)多處理模塊,三個(gè)(如果在Apache 2.4上),用于管理您的設(shè)置。
每個(gè)模塊創(chuàng)建子進(jìn)程,主要區(qū)別在于它們?nèi)绾翁幚砭€程。

Prefork

prefork模塊在啟動(dòng)時(shí)創(chuàng)建多個(gè)子進(jìn)程,每個(gè)子進(jìn)程只處理一個(gè)線程。 由于這些進(jìn)程一次只處理一個(gè)線程,因此如果有太多的并發(fā)請(qǐng)求,請(qǐng)求速度就會(huì)受到影響。 如果發(fā)生這種情況,一些請(qǐng)求基本上必須等待處理。 要處理此問題,請(qǐng)?jiān)黾由傻淖舆M(jìn)程數(shù),但請(qǐng)注意,這會(huì)增加RAM使用量。 Prefork是最安全的模塊,當(dāng)使用不是線程安?的模塊時(shí)使用。

Worker

Worker模塊的子進(jìn)程在每個(gè)進(jìn)程中生成許多線程,每個(gè)線程都能處理請(qǐng)求。 這提升了服務(wù)器的并發(fā)能力,當(dāng)然也能減少服務(wù)器內(nèi)存使用量。 總的來說,工作模塊提供了更高的性能,但是比prefork安全性更低,不能與不是線程安全的模塊一起使用。

Event

Event模塊僅在Apache 2.4上可用,并且基于Worker MPM。 和Worker一樣,它為每個(gè)子進(jìn)程創(chuàng)建多個(gè)線程,一個(gè)線程專用于KeepAlive連接,一旦請(qǐng)求發(fā)出,它就傳遞給子線程。 這對(duì)于多個(gè)并發(fā)連接很有用,特別是那些不是同時(shí)處于活動(dòng)狀態(tài)但卻偶爾請(qǐng)求的連接。 在SSL連接的情況下,Event MPM的作用與Worker相同。

模塊配置

一旦選擇了MPM,您需要更改配置中的值。 這些設(shè)置位于Debian / Ubuntu上的/etc/apache2/apache2.conf文件和CentOS / Fedora上的/etc/httpd/conf/httpd.conf文件。 MPM配置如下:

<IfModule mpm_prefork_module>
    StartServers          4
    MinSpareServers       20
    MaxSpareServers      40
    MaxClients           200
    MaxRequestsPerChild  4500
</IfModule>

對(duì)于其他MPM,分別將替換為以使用Worker和Event。
重新配置Apache服務(wù)器的下一步是更改上述設(shè)置。 要做到這一點(diǎn),你需要知道每個(gè)值的作用,以及如何更好地調(diào)節(jié)它。
同樣,進(jìn)行配置更改的最佳方法是進(jìn)行增量更改,然后監(jiān)視效果。

StartServers

StartServers值指示啟?時(shí)創(chuàng)建的子進(jìn)程數(shù),并根據(jù)負(fù)載進(jìn)行動(dòng)態(tài)控制。 通常沒有理由更改此數(shù)字,除非您的服務(wù)器頻繁重新啟動(dòng),并在重新啟動(dòng)時(shí)接收大量請(qǐng)求。

MinSpareServers

設(shè)置空閑子進(jìn)程的最小數(shù)量。 如果進(jìn)程數(shù)少于MinSpareServer數(shù),則會(huì)在Apache 2.2或更低版本上以每秒一個(gè)的速率創(chuàng)建更多進(jìn)程。 使用Apache 2.4,此速率呈指數(shù)增長(zhǎng),從1開始到每秒生成32個(gè)子進(jìn)程。 這個(gè)值的作用是,當(dāng)收到一個(gè)新請(qǐng)求時(shí),它可以直接使用空閑線程而不需要新生成一個(gè); 如果已經(jīng)沒有可用線程了,Apache會(huì)新生成一個(gè)子進(jìn)程,不過這會(huì)消耗服務(wù)器資源以及延長(zhǎng)請(qǐng)求處理時(shí)間。 注意,太多的空閑進(jìn)程也會(huì)對(duì)服務(wù)器產(chǎn)生不利影響。

MaxSpareServers

設(shè)置空閑子進(jìn)程的最大數(shù)量。 如果空閑進(jìn)程超出這個(gè)值,多余的將會(huì)終止。 除非您的網(wǎng)站非常繁忙,否則此數(shù)字不應(yīng)設(shè)置過高,因?yàn)榧词箍臻e進(jìn)程也會(huì)消耗資源。

MaxClients

可同時(shí)提供的最大請(qǐng)求數(shù)量,請(qǐng)求數(shù)超過限制時(shí)后來的請(qǐng)求將入隊(duì)列。 如果這個(gè)設(shè)置太低,隊(duì)列中的連接可能會(huì)超時(shí); 但是,如果設(shè)置過高,則會(huì)導(dǎo)致內(nèi)存不足出現(xiàn)swap。 如果此值增加超過256,則還必須增?ServerLimit值。
計(jì)算最佳值的一種方法是用服務(wù)器可用內(nèi)存除以每個(gè)Apache進(jìn)程使用的內(nèi)存量,注意要為其他進(jìn)程留出一些內(nèi)存空間。 使用ApacheBuddy幫助確定這些值,或下面的命令。
要確定每個(gè)Apache進(jìn)程使用的RAM,請(qǐng)?jiān)贒ebian或Ubuntu系統(tǒng)上將apache2替換為httpd:

ps -ylC httpd --sort:rss

除以1024轉(zhuǎn)為Mb
獲取內(nèi)存使用信息:

free -m

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: