Wins2003系統(tǒng)中Apache性能優(yōu)化方法
為了滿(mǎn)足網(wǎng)站高負(fù)荷的要求,在調(diào)整Apache參數(shù)時(shí)發(fā)現(xiàn)進(jìn)程經(jīng)常占用內(nèi)存過(guò)多導(dǎo)致當(dāng)機(jī)。經(jīng)過(guò)不斷的優(yōu)化和修改參數(shù)組合,終于讓服務(wù)器穩(wěn)定 下來(lái),可以滿(mǎn)足大量訪問(wèn)的考驗(yàn)和應(yīng)用要求。筆者總結(jié)了調(diào)試過(guò)程中的問(wèn)題和解決辦法如下,以供有類(lèi)似需求的網(wǎng)管員參考(系統(tǒng)環(huán)境為Windows Server 2003和apache2.2.8):
1、http-mpm.conf設(shè)置
Apache的線程數(shù)控制文件為http-mpm.conf,在conf/exrtra目錄下面,要使該配置文件起作用需要在httpd.conf 中將 Include conf/extra/httpd-mpm.conf前#去掉,以使得http-mpm.conf生效。
在Windows系統(tǒng)中,起作用的是Winnt mpm段,
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
以上是缺省的配置,一般情況下夠用了,但負(fù)荷較大的網(wǎng)站就需要修改了,否則訪問(wèn)網(wǎng)站會(huì)變慢或沒(méi)有響應(yīng)。實(shí)際設(shè)置中可以根據(jù)apache-status查看apache實(shí)時(shí)連接狀態(tài),查看其中線程占用數(shù)目情況來(lái)進(jìn)行相應(yīng)的調(diào)整,我的服務(wù)器最后設(shè)置如下:
<IfModule mpm_winnt_module>
ThreadsPerChild 350
ThreadLimit 350
MaxRequestsPerChild 10000
</IfModule>
其中ThreadLimit是占用系統(tǒng)線程數(shù)限制,修改后會(huì)在apache-status中直接看到效果,就是對(duì)應(yīng)的最大的可用線程數(shù)(如圖所示)。
MaxRequestsPerChild是進(jìn)程的最大的請(qǐng)求數(shù)目,既指網(wǎng)站收到請(qǐng)求的緩存數(shù)。設(shè)置太小了會(huì)影響服務(wù)器性能,因?yàn)闀?huì)占用較多cpu時(shí) 間,太大了則會(huì)占用內(nèi)存資源。一般大型的網(wǎng)站文件個(gè)數(shù)都是成千上萬(wàn),所以管理員應(yīng)該根據(jù)網(wǎng)站情況自己設(shè)定,只要不為0(無(wú)限制)就可以,以防止內(nèi)存溢出。
ThreadsPerChlid是Apache進(jìn)程的子線程數(shù),意思是服務(wù)器開(kāi)了這么多的線程數(shù)來(lái)等待響應(yīng)客戶(hù)端請(qǐng)求。該參數(shù)需要根據(jù) apache-status實(shí)時(shí)的監(jiān)控情況來(lái)調(diào)節(jié),太大會(huì)導(dǎo)致內(nèi)存增長(zhǎng)過(guò)快,直到服務(wù)器當(dāng)機(jī),太小會(huì)導(dǎo)致服務(wù)器連接隊(duì)列在高峰期時(shí)占滿(mǎn),從而導(dǎo)致網(wǎng)站連接 慢。同時(shí)我們應(yīng)該修改另一個(gè)配置文件httpd-default.php中的超時(shí)設(shè)置來(lái)配合這個(gè)參數(shù)。
2、httpd-default.conf設(shè)置
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我們需要調(diào)節(jié)以下參數(shù):
Timeout 15
該參數(shù)為連接超時(shí),缺省的300秒顯然太大,縮小該參數(shù)就會(huì)減少同時(shí)連接數(shù),即用戶(hù)實(shí)際占用的線程數(shù),這樣就可以起到配合上面ThreadsPerChlid參數(shù)的作用。
KeepAlive On
該參數(shù)為是否保持活連接,目前網(wǎng)站中一個(gè)頁(yè)面一般會(huì)包含多個(gè)文件,所以相應(yīng)用戶(hù)訪問(wèn)時(shí)會(huì)有多個(gè)請(qǐng)求,因此開(kāi)啟可以提高服務(wù)器性能。
MaxKeepAliveRequests 50
該參數(shù)為最大的活連接請(qǐng)求數(shù),可以根據(jù)網(wǎng)頁(yè)實(shí)際包含的文件數(shù)目自行調(diào)節(jié)。
KeepAliveTimeout 5
該參數(shù)為活連接的超時(shí)時(shí)間,一般只要設(shè)置成小于Timeout即可。
這樣設(shè)置后,Apache在響應(yīng)請(qǐng)求和防止惡意攻擊方面就取得較為平衡的效果,當(dāng)然由于內(nèi)存回收機(jī)制和進(jìn)程管理不同,Windows下長(zhǎng)期運(yùn)行 Apache還是不如Unix穩(wěn)定,因此我們可以讓Apache在每天凌晨訪問(wèn)人數(shù)少時(shí)自動(dòng)重啟一次,以回收資源。用Windows自帶的計(jì)劃任務(wù)就可以 簡(jiǎn)單的實(shí)現(xiàn)。這樣,我們就使Apache在Windows平臺(tái)下像Unix一樣長(zhǎng)期穩(wěn)定的提供服務(wù)了。
windows下apache及mysql定時(shí)自動(dòng)重啟&服務(wù)器定時(shí)自動(dòng)重啟
有時(shí)候覺(jué)得,服務(wù)器運(yùn)行時(shí)間過(guò)長(zhǎng),造成服務(wù)器內(nèi)存等壓力過(guò)大。因此,不用重新啟動(dòng)服務(wù)器的情況下,完成apache和mysql的內(nèi)存釋放,是非常有益處的(把重啟時(shí)間設(shè)置在訪問(wèn)量最低的)。
首先,apache的重新啟動(dòng)。
有兩種apache自動(dòng)定時(shí)重啟的方法(兩種,第二種可一同時(shí)啟動(dòng)apache和mysql,所以推薦一下第二種):
第一種、使用任務(wù)計(jì)劃
開(kāi)始>>程序>>附件>>管理工具>>任務(wù)計(jì)劃
添加任務(wù)計(jì)劃>>下一步>>apache restart>>選擇時(shí)間(可以設(shè)置的為每天凌晨2-4點(diǎn))>>一路確定即可。
第二種(個(gè)人覺(jué)得比較簡(jiǎn)單,同樣也是任務(wù)計(jì)劃) 采用at命令添加計(jì)劃任務(wù)
1、在c:盤(pán)根目錄新建一個(gè)apacheautostart.bat文件,然后右鍵編輯,將文件內(nèi)容設(shè)為如下后保存:
@ECHO OFF
net stop apache2
net start apache2
net stop mysql
net start mysql
(附加說(shuō)明:上面的apache2與mysql為服務(wù)名稱(chēng)。)
2、"開(kāi)始"-》運(yùn)行"cmd"-》執(zhí)行命令"at 04:00 c:apacheautostart.bat"
這樣每天早晨4點(diǎn)系統(tǒng)就會(huì)自動(dòng)重啟apache與mysql
(附加說(shuō)明:04:00為重啟時(shí)間,c:autostartserver.bat為第一步的bat文件地址)
mysql的重新啟動(dòng),也通過(guò)上面at命令方法重新啟動(dòng)了,所以推薦一下第二種方法。
同樣,你也可一給自己的服務(wù)器加上一個(gè)定時(shí)自動(dòng)重啟的功能(比如每周重新啟動(dòng)服務(wù)器一次)。
可以用at命令和shutdown命令配合實(shí)現(xiàn)。
AT命令可以安排在特定日期和時(shí)間運(yùn)行命令和程序,shutdown則可以在命令行下關(guān)閉并重啟計(jì)算機(jī),要在每周日的特定時(shí)間自動(dòng)重啟計(jì)算機(jī),只需 在命令提示符下輸入"at 02:00 /every:星期一 shutdown /l /r /y /c",這將在每周一的凌晨2點(diǎn)自動(dòng)重啟計(jì)算機(jī)。
相關(guān)文章
iis6偽靜態(tài)重寫(xiě)路徑的配置步驟(.net項(xiàng)目)
在網(wǎng)站項(xiàng)目漲添加URLRewriter程序集的引用和FormRewriterControlAdapter程序集引用/配置webconfig文件等等,感興趣的你可以參考下本文2013-03-03
Win2003服務(wù)器網(wǎng)絡(luò)負(fù)載平衡的配置方法[圖文]
均衡負(fù)載能夠平均分配客戶(hù)請(qǐng)求到服務(wù)器列陣,籍此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問(wèn)服務(wù)問(wèn)題。這種群集技術(shù)可以用最少的投資獲得接近于大型主機(jī)的性能2012-11-11
Windows?服務(wù)器中使用?mysqldump?命令導(dǎo)出數(shù)據(jù)中文亂碼問(wèn)題的解決方案
在windows服務(wù)器中每天備份一次數(shù)據(jù)庫(kù)數(shù)據(jù),防止出現(xiàn)各種意外,這里就使用了mysql的?mysqldump?服務(wù)來(lái)導(dǎo)出備份,接下來(lái)通過(guò)本文給大家介紹Windows?服務(wù)器中使用?mysqldump?命令導(dǎo)出數(shù)據(jù),解決中文亂碼問(wèn)題,需要的朋友可以參考下2022-12-12
Windows安裝MySQL8.0.16 的步驟及出現(xiàn)錯(cuò)誤問(wèn)題解決方法
現(xiàn)在的mysql8安裝只能采用解壓配置版,像以前老版本的傻瓜式安裝將不復(fù)存在。下面小編給大家?guī)?lái)了解決Windows安裝MySQL8.0.16 步驟及出現(xiàn)錯(cuò)誤問(wèn)題,感興趣的朋友一起看看吧2019-06-06
Winserver 2019搭建DFS文件服務(wù)器的圖文教程
這篇文章主要介紹了Winserver 2019搭建DFS文件服務(wù)器的圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
windows服務(wù)器維護(hù)經(jīng)驗(yàn)小結(jié)(rsync,serv_u)
這篇文章是腳本之家在維護(hù)多臺(tái)win2003服務(wù)器的時(shí)候,經(jīng)常用到的一些配置方法與bat,主要是rsync文件同步配置,serv_u經(jīng)常停止,sqlserver數(shù)據(jù)庫(kù)壓縮問(wèn)題2013-05-05
Windows下通過(guò)FTP自動(dòng)備份數(shù)據(jù)到服務(wù)器并刪除指定天數(shù)前的備份
有時(shí)候我們想將本地的備份文件放到別的服務(wù)器上,實(shí)現(xiàn)異地備份,更安全,那么就可以參考下面的方法2013-06-06

