長治網(wǎng)站建設(shè)
            Windows系統(tǒng)下Apache性能優(yōu)化,提高并發(fā)
              Apache服務(wù)器配合PHP日趨成為當(dāng)前網(wǎng)站架設(shè)的主流應(yīng)用,但是在國內(nèi)Linux系統(tǒng)畢竟沒有Windows系統(tǒng)應(yīng)用的多,因此飄易整理下在windows系統(tǒng)下如何優(yōu)化apache的性能。


                在Windows系統(tǒng)上面按以往Unix/linux的經(jīng)驗(yàn)配置Apache時,由于Windows的內(nèi)存回收機(jī)制和進(jìn)程管理的不同,會發(fā)現(xiàn)許多新問題。前些時單位的網(wǎng)站需要搬遷到新的Windows服務(wù)器,筆者在調(diào)試過程中也碰上了許多問題。新系統(tǒng)是Windows 2003 Server,為了滿足網(wǎng)站高負(fù)荷的要求,在調(diào)整Apache參數(shù)時發(fā)現(xiàn)進(jìn)程經(jīng)常占用內(nèi)存過多導(dǎo)致當(dāng)機(jī)。經(jīng)過不斷的優(yōu)化和修改參數(shù)組合,終于讓服務(wù)器穩(wěn)定下來,可以滿足大量訪問的考驗(yàn)和應(yīng)用要求。筆者總結(jié)了調(diào)試過程中的問題和解決辦法如下,以供有類似需求的網(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ǎng)站會變慢或沒有響應(yīng)。實(shí)際設(shè)置中可以根據(jù)apache-status查看apache實(shí)時連接狀態(tài),查看其中線程占用數(shù)目情況來進(jìn)行相應(yīng)的調(diào)整,我的服務(wù)器最后設(shè)置如下:


            <IfModule mpm_winnt_module>
            #ThreadLimit     350
            ThreadsPerChild    350
            MaxRequestsPerChild    10000
            Win32DisableAcceptEx
            </IfModule>

            其中ThreadLimit是占用系統(tǒng)線程數(shù)限制,修改后會在apache-status中直接看到效果,就是對應(yīng)的最大的可用線程數(shù)(如下所示):1 requests currently being processed, 349 idle workers
            對于mpm_winnt,ThreadLimit的默認(rèn)值是1920;對于其他mpM這個值是64。
            注意:Apache在編譯時內(nèi)部有一個硬性的限制"ThreadLimit 20000"(對于mpm_winnt是"ThreadLimit 15000"),你不能超越這個限制。


            ThreadsPerChlid是Apache進(jìn)程的子線程數(shù),這個指令設(shè)置了每個子進(jìn)程建立的線程數(shù)。子進(jìn)程在啟動時建立這些線程后就不再建立新的線程了。如果使用一個類似于mpm_winnt只有一個子進(jìn)程的mpM,這個數(shù)值要足夠大,以便可以處理可能的請求高峰。如果使用一個類似于worker有多個子進(jìn)程的mpM,每個子進(jìn)程所擁有的所有線程的總數(shù)要足夠大,以便可以處理可能的請求高峰。
            該參數(shù)需要根據(jù) apache-status實(shí)時的監(jiān)控情況來調(diào)節(jié),太大會導(dǎo)致內(nèi)存增長過快,直到服務(wù)器當(dāng)機(jī),太小會導(dǎo)致服務(wù)器連接隊(duì)列在高峰期時占滿,從而導(dǎo)致網(wǎng)站連接 慢。同時我們應(yīng)該修改另一個配置文件httpd-default.php中的超時設(shè)置來配合這個參數(shù)。
            對于mpm_winnt,ThreadsPerChild的默認(rèn)值是64;對于其他mpM是25。


            MaxRequestsPerChild是進(jìn)程的最大的請求數(shù)目,既指網(wǎng)站收到請求的緩存數(shù)。設(shè)置太小了會影響服務(wù)器性能,因?yàn)闀加幂^多cpu時間,太大了則會占用內(nèi)存資源。一般大型的網(wǎng)站文件個數(shù)都是成千上萬,所以管理員應(yīng)該根據(jù)網(wǎng)站情況自己設(shè)定。
            MaxRequestsPerChild指令設(shè)置每個子進(jìn)程在其生存期內(nèi)允許伺服的最大請求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會結(jié)束。如果MaxRequestsPerChild為"0",子進(jìn)程將永遠(yuǎn)不會結(jié)束。
            在mpm_netware和mpm_winnt上的默認(rèn)值是"0"。
            將MaxRequestsPerChild設(shè)置成非零值有兩個好處:
            a)可以防止(偶然的)內(nèi)存泄漏無限進(jìn)行,從而耗盡內(nèi)存。
            b)給進(jìn)程一個有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時候減少活動進(jìn)程的數(shù)量。
            注意:對于KeepAlive鏈接,只有第一個請求會被計(jì)數(shù)。事實(shí)上,它改變了每個子進(jìn)程限制最大鏈接數(shù)量的行為。


            Win32DisableAcceptEx加入該語句是為了解決一些警告:
            [warn] (OS 64)指定的網(wǎng)絡(luò)名不再可用。 : winnt_accept: Asynchronous AcceptEx failed。


            2、httpd-default.conf設(shè)置


            在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我們需要調(diào)節(jié)以下參數(shù):


            Timeout 20
            該參數(shù)為連接超時,缺省的300秒顯然太大,縮小該參數(shù)就會減少同時連接數(shù),即用戶實(shí)際占用的線程數(shù),這樣就可以起到配合上面ThreadsPerChlid參數(shù)的作用。


            KeepAlive On
            該參數(shù)為是否保持活連接,目前網(wǎng)站中一個頁面一般會包含多個文件,所以相應(yīng)用戶訪問時會有多個請求,因此開啟可以提高服務(wù)器性能。


            MaxKeepAliveRequests 50
            該參數(shù)為最大的活連接請求數(shù),可以根據(jù)網(wǎng)頁實(shí)際包含的文件數(shù)目自行調(diào)節(jié)。


            KeepAliveTimeout 5
            該參數(shù)為活連接的超時時間,一般只要設(shè)置成小于Timeout即可。


            這樣設(shè)置后,Apache在響應(yīng)請求和防止惡意攻擊方面就取得較為平衡的效果,當(dāng)然由于內(nèi)存回收機(jī)制和進(jìn)程管理不同,Windows下長期運(yùn)行 Apache還是不如Unix穩(wěn)定,因此我們可以讓Apache在每天凌晨訪問人數(shù)少時自動重啟一次,以回收資源。用Windows自帶的計(jì)劃任務(wù)就可以 簡單的實(shí)現(xiàn)。這樣,我們就使Apache在Windows平臺下像Unix一樣長期穩(wěn)定的提供服務(wù)了。


            windows下apache及mysql定時自動重啟&服務(wù)器定時自動重啟


            有時候覺得,服務(wù)器運(yùn)行時間過長,造成服務(wù)器內(nèi)存等壓力過大。因此,不用重新啟動服務(wù)器的情況下,完成apache和mysql的內(nèi)存釋放,是非常有益處的(把重啟時間設(shè)置在訪問量最低的)。
            首先,apache的重新啟動。


            有兩種apache自動定時重啟的方法(兩種,第二種可一同時啟動apache和mysql,所以推薦一下第二種):


            第一種、使用任務(wù)計(jì)劃
            開始>>程序>>附件>>管理工具>>任務(wù)計(jì)劃
            添加任務(wù)計(jì)劃>>下一步>>apache restart>>選擇時間(可以設(shè)置的為每天凌晨2-4點(diǎn))>>一路確定即可。


            第二種(個人覺得比較簡單,同樣也是任務(wù)計(jì)劃) 采用at命令添加計(jì)劃任務(wù)


            1、在c:盤根目錄新建一個apacheautostart.bat文件,然后右鍵編輯,將文件內(nèi)容設(shè)為如下后保存:
            @ECHO OFF
            net stop apache2
            net start apache2
            net stop mysql
            net start mysql

            (附加說明:上面的apache2與mysql為服務(wù)名稱。)


            2、“開始”-》運(yùn)行“cmd”-》執(zhí)行命令“at 04:00 c:apacheautostart.bat”
            這樣每天早晨4點(diǎn)系統(tǒng)就會自動重啟apache與mysql
            (附加說明:04:00為重啟時間,c:autostartserver.bat為第一步的bat文件地址)


            mysql的重新啟動,也通過上面at命令方法重新啟動了,所以推薦一下第二種方法。


            ——————————————————————————–


            同樣,你也可一給自己的服務(wù)器加上一個定時自動重啟的功能(比如每周重新啟動服務(wù)器一次)。


            可以用at命令和shutdown命令配合實(shí)現(xiàn)。


            AT命令可以安排在特定日期和時間運(yùn)行命令和程序,shutdown則可以在命令行下關(guān)閉并重啟計(jì)算機(jī),要在每周日的特定時間自動重啟計(jì)算機(jī),只需 在命令提示符下輸入“at 02:00 /every:星期一 shutdown /l /r /y /c”,這將在每周一的凌晨2點(diǎn)自動重啟計(jì)算機(jī)。


            有關(guān)at命令和shutdown命令的更詳盡信息,請?jiān)赪indows Server 2003的命令提示符下輸入“at /?”和“shutdown /?”獲得,或者在http://support.microsoft.com/kb/317371/zh-cn,也有微軟官方知識庫中的相關(guān)文章。


                本文原文出處飄易沒有找到,原作者如有看到,請留下網(wǎng)址,我會補(bǔ)充鏈接進(jìn)來。


                【Windows下如何開啟 apache的 apache-status監(jiān)控功能】:


            httpd.conf中,加載模塊: 
            把 LoadModule status_module modules/mod_status.so 這句加上,如果前面有帶#號,開啟的話,需要將#去除,并加入:
            <location /server-status>
                     SetHandler server-status
                     Order Deny,Allow
                     Deny from all
                     Allow from localhost
            </location>
            ExtendedStatus On

            這是一個完整的server-status的配置。
            配置完成,重新啟動apache即可(注意,不能直接restart,而要先stop,再start)


            可以用http://localhost/server-status來訪問,同時
            http://localhostm/server-status?refresh=N將表示訪問狀態(tài)頁面可以每N秒自動刷新一次;
            Deny from表示禁止的訪問地址;
            Allow from表示允許的地址訪問;
            ExtendedStatus On 表示的是待會訪問的時候能看到詳細(xì)的請求信息,另外該設(shè)置僅能用于全局設(shè)置,不能在特定的虛擬主機(jī)中打開或關(guān)閉。啟用擴(kuò)展?fàn)顟B(tài)信息將會導(dǎo)致服務(wù)器運(yùn)行效率降低。

            2006-2014 IT0355.com 山西中聯(lián)科創(chuàng)科技有限公司. All Rights Reserved.
            電話:0355-3728808 傳真:0355-3728808
            ICP備案號:晉ICP備06003721號本站已通過國際W3C認(rèn)證
            關(guān)鍵字:中聯(lián)科創(chuàng),長治網(wǎng)站建設(shè),長治網(wǎng)站推廣,長治網(wǎng)絡(luò)工程,長治軟件開發(fā),山西網(wǎng)站建設(shè),山西軟件開發(fā) 長治五金網(wǎng)

                        

            亚洲无码视频2020,日本免费人成视频播放120秒,亚洲中文字无码,亚洲乱码中文字幕综合,91无码偷拍精品一区二区三区,日本中文字幕一区在线,亚洲国产第一站精品蜜芽,精品无码人妻 亚太影院 柯西贝尔-游戏赚网

                    
                    

                      国产乱子伦在线观看视频| 国产一级婬片AAA毛片久久| 制服丝袜国产中文精品| 亚州中文精品有码视频在线| 国产一区二区三区免费公开| 久久国产精品娇妻素人| 制服丝袜亚洲经典中文字幕| 无码精品人妻在线视频| 亚洲AV成人一二三区观看| 国产成人99精品免费视频| 五月婷婷丁香综合中文字幕| 亚洲av综合一区二区| 亚洲 无码 有码 精品视频| 日韩精品无码人成视频手机| 日本乱人伦中文字幕网站| 久久久无码一区二区三区| 校园AV中日韩无码精品| 免费 人妻 无码 不卡中文| 乱子伦av无码中文字幕| 99精品热视频这里只有精品| 久久无码av高潮av喷吹免费看| 人人添逼人人摸人人揉| 国产精品尤物粉嫩泬流白浆| 久久夜色精品国产网站| 亚洲高清AV无码| 2021亚洲精品无码在钱| 久久精品国产@99| 国产免费人成视频尤勿视频| h漫无码动漫av在线播放| 国产激情久久久久老熟女| 欧美视频综合一区二区| 久久人人爽人人爽人人片av高| 四虎影视国产精品永久免费| 日本欧美一区二区三区视频| 亚洲人成网站在线在线| 蜜桃麻豆WWW久久国产精品| 国产精品久久久久久久福利| 99爱内射一区二区三区四区五区| 99在线无码精品秘 入口| 国产精品一级毛片卡在线看| 自拍偷亚洲成在线观看|