亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Apache > 正文

Apache服務器訪問過慢分析及解決

2024-08-27 18:25:47
字體:
來源:轉載
供稿:網友

起因:線上的一臺服務器,最近總是出現 訪問 很慢的情況發生,點擊一個鏈接要2秒鐘以上才能打開,按照我們對于訪問人數的估計,服務器應該不至于響應這么慢,從而需要針對這個問題進行分析,來解決網站訪問過慢。

分析:

1、首先,在頁面訪問變慢情況發生時,使用 top 命令查看了服務器的負載情況,發現負載并不高,初步估計不是程序的問題。
2、然后,查看了線程中的 httpd 的數量, ps -aux | grep httpd | wc -l 發現,線程數已經達到了 apache 設置的最大值。由此斷定是網站訪問人數過多造成了訪問過慢。
3、為了驗證,查看了連接數和當前的連接數,分別是
    netstat -ant | grep $ip:80 | wc -l
    netstat -ant | grep $ip:80 | grep EST | wc -l
    發現果然,連接數特別多,遠遠超過我們的估計值。
4、剛開始的時候,對于服務器的 MPM 配置方式不是特別的熟悉,認為修改服務器配置可以解決問題。主要的配置部分包括 prefork 模式 或者 work 模式的配置,下面是一些簡單的介紹。

    prefork 模式:
    以 prefork 模式工作的 apache 的默認配置:
    <IfModule mpm_prefork_module>
        ServerLimit             2000   
        StartServers               5    #指定服務器啟動時建立的子進程數量
        MinSpareServers            5    #指定空閑子進程的最小數量
        MaxSpareServers           10    #指定空閑子進程的最大數量
        MaxClients               150    #指定同一時間客戶端最大接入請求的數量(單個進程并發線程數),任何超過該限制的請求都將進入等候隊列,一旦一個連接被釋放,隊列中的請求將得到服務
        MaxRequestsPerChild        0    #指定每個子進程在其生存周期內允許伺服的最大請求數量,默認為10000,0表示子進程永遠不結束
    </IfModule>
    prefork 控制進程在最初建立“StartServers”個子進程后,為了滿足 MinSpareServers 設置的需要創建一個進程,等待一秒鐘,繼續創建兩個,再等待一秒鐘,繼續創建四個……如此按指數級增加創建的進程數,最多達到每秒32個,直到滿足MinSpareServers設置的值為止。這種模式可以不必在請求到來時再產生新的進程,從而減小了系統開銷以增加性能。
    MaxSpareServers 設置了最大的空閑進程數,如果空閑進程數大于這個值,Apache會自動kill掉一些多余進程。這個值不要設得過大,但如果設的值比 MinSpareServers小,Apache會自動把其調整為 MinSpareServers+1。如果站點負載較大,可考慮同時加大MinSpareServers和MaxSpareServers。
    MaxClients是這些指令中最為重要的一個,設定的是 Apache可以同時處理的請求,是對Apache性能影響最大的參數。其缺省值150是遠遠不夠的,如果請求總數已達到這個值(可通過ps -ef|grep httpd|wc -l來確認),那么后面的請求就要排隊,直到某個已處理請求完畢。這就是系統資源還剩下很多而HTTP訪問卻很慢的主要原因。雖然理論上這個值越大,可以處理的請求就越多,但Apache默認的限制不能大于256。在 apache2 中通過ServerLimit指令無須重編譯Apache就可以加大MaxClients。
    雖然通過設置ServerLimit,我們可以把MaxClients加得很大,但是往往會適得其反,系統耗光所有內存。以一臺服務器為例:內存2G,每個apache進程消耗大約0.5%(可通過ps aux來確認)的內存,也就是10M,這樣,理論上這臺服務器最多跑200個apache進程就會耗光系統所有內存,所以,設置MaxClients要慎重。
    worker 模式:
    以 worker 模式工作的 apache 的默認配置為:
    <IfModule mpm_worker_module>
        StartServers               2
        MaxClients               150
        MinSpareThreads           25
        MaxSpareThreads           75
        ThreadsPerChild           25
        MaxRequestsPerChild        0
    </IfModule>
    Worker 由主控制進程生成“StartServers”個子進程,每個子進程中包含固定的ThreadsPerChild線程數,各個線程獨立地處理請求。同樣,為了不在請求到來時再生成線程,
    MinSpareThreads和MaxSpareThreads設置了最少和最多的空閑線程數;而MaxClients 設置了同時連入的clients最大總數。如果現有子進程中的線程總數不能滿足負載,控制進程將派生新的子進程。
    MinSpareThreads和 MaxSpareThreads的最大缺省值分別是75和250。這兩個參數對Apache的性能影響并不大,可以按照實際情況相應調節。
    ThreadsPerChild是worker MPM中與性能相關最密切的指令。
    ThreadsPerChild的最大缺省值是64,如果負載較大,64也是不夠的。這時要顯式使用 ThreadLimit指令,它的最大缺省值是20000。
    Worker模式下所能同時處理的請求總數是由子進程總數乘以ThreadsPerChild 值決定的,應該大于等于MaxClients。如果負載很大,現有的子進程數不能滿足時,控制進程會派生新的子進程。默認最大的子進程總數是16,加大時也需要顯式聲明ServerLimit(最大值是20000)。需要注意的是,如果顯式聲明了ServerLimit,那么它乘以 ThreadsPerChild的值必須大于等于MaxClients,而且MaxClients必須是ThreadsPerChild的整數倍,否則 Apache將會自動調節到一個相應值。

    服務器的apache采用的是 prefork 的工作模式,對 MaxClients 進行了相應的調整,發現服務啟動后很短時間,連接數就能夠達到最大。
5、后來想到需要查看用戶都是訪問的那些頁面,將配置中的 access_log 打開,發現85%以上的訪問都是直接訪問的資源文件,由此判定,用戶可能使用了多線程的下載工具,或者這些資源遭受了盜鏈。
6、找到了問題所在,進行解決也就比較好辦了。想到了兩個方法:
    A、對單個IP進行連接的線程限制,不允許多線程連接資源。
        對于IP限制,我采用了 mod_limitipconn 這個模塊。這個模塊的好處是比較簡單,缺點是不能夠針對單獨的文件夾或者文件進行設置,而且不支持虛擬主機。
        在 apache 中安裝了這個模塊后,在配置文件中添加如下幾段就可以生效了:
            ExtendedStatus On
            < IfModule mod_limitipconn.c >
                < Location / >   # 所有虛擬主機的/目錄
                    MaxConnPerIP 3     # 每IP只允許3個并發連接
                    NoIPLimit image/*  # 對圖片不做IP限制
                < /Location >
            < Location /mp3 >  # 所有主機的/mp3目錄
            MaxConnPerIP 1         # 每IP只允許一個連接請求   
            OnlyIPLimit audio/mpeg video    # 該限制只對視頻和音頻格式的文件
                < /Location >
            < /IfModule >
    B、添加URL重寫,防止盜鏈。
        防止盜鏈,一個重要的方法就是判斷請求的 refer,但是如果使用一些瀏覽器發出請求的時候將 refer 去掉,或者偽裝,這個辦法就無能為力了。但是貌似還有更高級的方法,還是可以實現這個功能。
        安裝apache的 mod_rewrite 模塊后,在apache配置文件中添加
        RewriteEngine On
        RewriteCond %{HTTP_REFERER} !^http://abc.com/.*$ [NC]
        RewriteCond %{HTTP_REFERER} !^http://abc.com$ [NC]
        RewriteCond %{HTTP_REFERER} !^http://www.abc.com/.*$ [NC]
        RewriteCond %{HTTP_REFERER} !^http://www.abc.com$ [NC]
        RewriteRule .*/.(gif|jpg|swf)$ http://www.abc.com/about/nolink.png [R,NC]
        這樣盜鏈的請求會被重定向到一個錯誤頁面,從而減少下載帶給服務器的壓力。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图17p| 亚洲欧洲成视频免费观看| 欧美激情第6页| 最近2019中文免费高清视频观看www99| 国产精品一二三在线| 97色在线视频观看| 97视频国产在线| 欧美性猛交xxxx偷拍洗澡| 中文字幕日韩在线视频| 久久久99久久精品女同性| 欧美中文字幕视频在线观看| 国产一区视频在线| 日本精品一区二区三区在线播放视频| 日韩有码片在线观看| 欧美一级淫片aaaaaaa视频| 国产精品久久电影观看| 欧美午夜精品久久久久久久| 国产欧美日韩中文字幕| 日韩av手机在线观看| 国产日韩欧美视频在线| 国产精品一区二区三区久久久| 欧美大片在线看| 色婷婷av一区二区三区久久| 精品视频在线播放色网色视频| 91精品国产乱码久久久久久蜜臀| 精品国产自在精品国产浪潮| 久久精品91久久香蕉加勒比| 亚洲国产小视频在线观看| 国产中文欧美精品| 亚洲天堂日韩电影| 中文亚洲视频在线| 最新国产精品拍自在线播放| 亚洲天堂开心观看| 国产一区私人高清影院| 性欧美xxxx| 热久久美女精品天天吊色| 中文字幕精品av| 中文字幕免费精品一区| 4p变态网欧美系列| 亚洲另类xxxx| 热久久这里只有精品| 欧美大片在线影院| 亚洲欧美制服第一页| 亚洲大尺度美女在线| 久久久久久久久亚洲| 久久亚洲私人国产精品va| 日韩欧美中文字幕在线观看| 色婷婷久久av| 亚洲视频网站在线观看| 久久激情视频久久| 中文字幕亚洲综合久久筱田步美| 91在线网站视频| 欧美综合国产精品久久丁香| 欧美性猛交视频| 在线观看欧美www| 性欧美长视频免费观看不卡| 国外成人在线视频| 亚洲毛片在线观看| 日韩av在线免费看| 欧美精品久久一区二区| 欧美日韩中文在线观看| 欧美一级淫片丝袜脚交| 中文字幕久久久av一区| 精品夜色国产国偷在线| 91精品国产精品| 性欧美xxxx视频在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 性色av一区二区三区在线观看| 国产精品户外野外| 一个人看的www欧美| 一区二区三区在线播放欧美| 国产精品视频永久免费播放| 国产精品九九久久久久久久| 国产成人91久久精品| 日韩在线免费视频观看| 欧美日韩综合视频网址| 菠萝蜜影院一区二区免费| 精品久久久av| 色妞欧美日韩在线| 亚洲综合色激情五月| 亚洲精品中文字| 色狠狠久久aa北条麻妃| 日韩av在线看| 久久影视电视剧免费网站| 免费不卡在线观看av| 亚洲国产毛片完整版| 国产日韩中文字幕在线| 亚洲九九九在线观看| 欧美性xxxxx极品娇小| 国a精品视频大全| 欧美一区三区三区高中清蜜桃| 亚洲精品720p| 亚洲免费视频观看| 欧美日韩在线免费| 亚洲新声在线观看| 欧美电影院免费观看| 91久久精品美女| 国产精品免费久久久久久| 亚洲欧美日韩国产中文| 91成人天堂久久成人| 日本一区二区在线播放| 日韩av网站电影| 亚洲在线观看视频| 欧美大片免费观看在线观看网站推荐| 欧美性猛交xxxx免费看漫画| 欧美日韩国产精品一区二区不卡中文| 精品精品国产国产自在线| 亚洲午夜女主播在线直播| 色偷偷av一区二区三区乱| 亚洲免费av网址| 最新91在线视频| 国产精品视频免费在线| 日韩网站免费观看高清| 欧美激情在线狂野欧美精品| 欧洲亚洲在线视频| 久久精品人人爽| 国产99久久精品一区二区永久免费| 久久91亚洲精品中文字幕| 九九精品在线播放| 在线观看视频99| 国产精品高潮粉嫩av| 国产一区二区三区毛片| 91国产视频在线播放| 日韩第一页在线| 尤物精品国产第一福利三区| 日韩精品中文字幕久久臀| 69影院欧美专区视频| 亚洲第一视频网| 精品亚洲va在线va天堂资源站| 亚洲美女中文字幕| 91免费人成网站在线观看18| 亚洲欧美日韩国产成人| 成人欧美一区二区三区黑人孕妇| 久久综合色88| 国产精品一区二区三区在线播放| 热99精品里视频精品| 92国产精品视频| 亚洲嫩模很污视频| 亚洲精品日韩丝袜精品| 亚洲福利精品在线| 日韩精品视频在线观看网址| 日韩欧美精品中文字幕| 欧美日韩性视频在线| 亚洲成av人乱码色午夜| 欧美精品制服第一页| 久久久久久网站| 亚洲精品中文字| 国产成人在线精品| 精品国产鲁一鲁一区二区张丽| 亚洲a级在线播放观看| 亚洲成人动漫在线播放| 亚洲国产精品大全| 久久久久999| 久久久视频精品| 91在线免费看网站| 久久这里只有精品视频首页| 在线看日韩av| 日韩av在线影院| 亚洲一区二区三区成人在线视频精品| 日韩精品www| 中文字幕免费精品一区| 日韩免费不卡av| 91精品国产综合久久香蕉的用户体验| 欧美日韩国产麻豆|