<nav id="qvmyt"><address id="qvmyt"></address></nav>
<pre id="qvmyt"></pre>
<u id="qvmyt"><listing id="qvmyt"></listing></u>


    <li id="qvmyt"><menuitem id="qvmyt"></menuitem></li>
    <li id="qvmyt"><source id="qvmyt"></source></li><progress id="qvmyt"><sub id="qvmyt"></sub></progress>
    <optgroup id="qvmyt"></optgroup>
  • 歡迎來到AD8000.CN 站長教程網!

    Apache

    當前位置:主頁 > 服務器教程 > Apache >

    Apache的并發數量優化設置教程

    時間:2017-11-22|欄目:Apache|點擊:

    怎么設置apache的并發數量呢?今天我們就從多方面來給各位介紹我們在windows 服務器中apache的并發數量的一個合理的參數配置與優化方法,希望文章對大家有用。
    1、在httpd.conf文件中修改
      #Server-pool management (MPM specific)
      #Include conf/extra/httpd-mpm.conf
    將上面一句的#注釋去掉
    2、確定當前的apache是什么MPM模式(winnt模式,perfork模式,worker模式)
    1.對于perfork.c模塊
    其特點是每個子進程只有一個線程。每個進程在某個確定的時間只能維持一個連接。在大多數平臺上,Prefork MPM在效率上要比Worker MPM要高,但是內存使用大得多。prefork的無線程設計在某些情況下將比worker更有優勢:它可以使用那些沒有處理好線程安全的第三方模塊。
    既然是一個進程一個線程,所以在prefork.c下,這兩個值是相等的。注:ServerLimit最大值為2000.
    2.對于work.c模塊來說
    是多線程的,默認是一個進程有25個線程,因此如果設置ServerLimit為100,那么MaxClients最大可以設置為2500。
    這里說說我們可憐的vps,為了省錢一般只有512m-1g的內存,而prefork.c一個進程占用30-45m左右的內存(這個值跟php-fpm下php-cgi內存占用相當),所以如果有512m的內存話,系統+mysql(最小節約配置)吃掉250m左右,剩下的內存也就是跑10個進程,所以這個值真的是很可憐,不過對于流量小的站點,這個并發也夠用了,一般跑個上千的流量不是問題。所以做web服務,有錢還是多弄點內存的好,或者跑lnmp是比較合適的選擇。
    進入到apache/bin目錄
    cmd命令:httpd.exe -1
    說明:看mpm_xxx.c 如果xxx是winnt 說明是winnt,另外還可能是perfork或者worker
    3、修改httpd-mpm.conf文件
      # WinNT MPM
      # ThreadsPerChild: constant number of worker threads in the server process
      # MaxRequestsPerChild: maximum  number of requests a server process serves
      ThreadsPerChild      150  //修改這個值即可
      MaxRequestsPerChild    0
    4、重啟apache,測試看看
    在Linux下,一般采用的MPM是perfork模式
      StartServers          5        //預先起5個進程
      MinSpareServers       5       //最小空閑進程
      MaxSpareServers      10      //最大空閑進程
      MaxClients          150      //并發連接數
      MaxRequestsPerChild   0      //指一個進程里可以起多少個線程,對worker更好,0為不限制
    給大家一個合理的建議配置,對在部分網站,中型網站,配置:
      StartServers          5        //預先起5個進程
      MinSpareServers       5       //最小空閑進程
      MaxSpareServers      10      //最大空閑進程
      ServerLimit          1500     // 用于修改apache編程參數
      MaxClients          1000      //并發連接數
      MaxRequestsPerChild   0      //指一個進程里可以起多少個線程,對worker更好,0為不限制
    如果你的網站pv值百萬,可以這樣設置:
      ServerLimit          2500     // 用于修改apache編程參數
      MaxClients          2000      //并發連接數
    /*******注釋********/
    StartServers
    指定服務器啟動時建立的子進程數量,prefork默認為5。
    MinSpareServers
    指定空閑子進程的最小數量,默認為5。如果當前空閑子進程數少于MinSpareServers ,
    那么Apache將以最大每秒一個的速度產生新的子進程。此參數不要設的太大。
    MaxSpareServers
    設置空閑子進程的最大數量,默認為10。如果當前有超過MaxSpareServers數量的空閑子進程,那么父進程將殺死多余的子進程。
    此參數不要設的 太大。如果你將該指令的值設置為比MinSpareServers小,Apache將會自動將其修改成”MinSpareServers+1″。
    MaxClients
    限定同一時間客戶端最大接入請求的數量(單個進程并發線程數),默認為256。任何超過MaxClients限制的請求都將進入等候隊列,一旦一個鏈接被釋放,
    隊列中的請求將得到服務。要增大這個值,你必須同時增大ServerLimit。
    MaxRequestsPerChild
    每個子進程在其生存期內允許伺服的最大請求數量,默認為10000.到達MaxRequestsPerChild的限制后,子進程將會結束。
    如果 MaxRequestsPerChild為”0″,子進程將永遠不會結束。將MaxRequestsPerChild設置成非零值有兩個好處:
    1.可以防止(偶然的)內存泄漏無限進行,從而耗盡內存。
    2.給進程一個有限壽命,從而有助于當服務器負載減輕的時候減少活動進程的數量。
    補充:Apache壓力測試 ab工具的使用方法
    打開運行輸入cmd進入到DOS命令行界面,cd 進入到Apache/bin 目錄,輸入命令:
    ab.exe –n 10000 –c 100 localhost/index.php
    上面一行命令的意思是訪問index.php這個頁面10000次,每次的并發訪問為100。執行命令之后耐心等待一段時間后就會出來類似下面的結果,圖片面都有詳細說明測試返回來的結果是什么意思
    參數 –c concurrency 表示執行的總次數,如 –c 10000表示總共執行10000次,

    上一篇:Apache 2.4.2無法訪問錯誤代碼為403的解決方法

    欄    目:Apache

    下一篇:采用mod_gzip加速Zope和Apache

    本文標題:Apache的并發數量優化設置教程

    本文地址:

    說點什么吧
    • 全部評論(0
      還沒有評論,快來搶沙發吧!

    廣告投放 | 聯系我們 | 版權申明

    重要申明:本站所有的文章、圖片、評論等,均由網友發表或上傳并維護或收集自網絡,屬個人行為,與本站立場無關。

    如果侵犯了您的權利,請與我們聯系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

    聯系QQ:215436232 | 郵箱:215436232#qq.com(#換成@)

    Copyright © 2020-2022 站長教程網 AD8000.CN 版權所有

    河北懦蟹装饰工程有限公司