回覆列表
  • 1 # 使用者2458114238191884

    計算模型:

    每臺伺服器每秒處理請求的數量=((80%*總PV量)/(24小時*60分*60秒*40%)) / 伺服器數量 。

    其中關鍵的引數是80%、40%。表示一天中有80%的請求發生在一天的40%的時間內。24小時的40%是9.6小時,有80%的請求發生一天的9.6個小時當中(很適合網際網路的應用,白天請求多,晚上請求少)。 簡單計算的結果:

    ((80%*500萬)/(24小時*60分*60秒*40%))/1 = 115.7個請求/秒

    ((80%*100萬)/(24小時*60分*60秒*40%))/1 = 23.1個請求/秒

    現在我們在做壓力測試時,就有了標準,如果你的伺服器一秒能處理115.7個請求,就可以承受500萬PV/每天。如果你的伺服器一秒能處理23.1個請求,就可以承受100萬PV/每天

    有人說以上條件我都滿足了,但實際效能還是達不到目標。這時請注意你對外的網路的頻寬,在國內伺服器便宜但頻寬很貴,很可能你在機房是與大家共享一條100M的光纖,實際每個人可分到2M左右頻寬。再好一點5M,再好一點雙線機房10M獨享,這已經很貴了(北京價格)。

    一天總流量:每個頁面20k位元組*100萬個頁面/1024=19531M位元組=19G位元組,

    19531M/9.6小時=2034M/小時=578K位元組/s 如果請求是均勻分佈的,需要5M(640K位元組)頻寬(5Mb=640KB

    注意大小寫,b是位,B是位元組,差了8倍),但所有請求不可能是均勻分佈的,當有高峰時5M頻寬一定不夠,X2倍就是10M頻寬。10M頻寬基本可以滿足要求。

    以上是假設每個頁面20k位元組,基本不包含圖片,要是包含圖片就更大了,10M頻寬也不能滿足要求了。

    具體設定:

    第一步:啟用MPM模組配置檔案

    我們需要在httpd.conf檔案中啟用該配置檔案,如下所示:

    # Server-pool management (MPM

    specific)Include conf/extra/httpd-mpm.conf (去掉該行前面的註釋符號"#")

    第二步:啟用MPM模組後找到配置檔案進行編輯。

    在Apace安裝c:\ chaodiquan.com \conf\extra目錄中有一個名為httpd-mpm.conf的配置檔案。該檔案主要用於進行MPM模組的相關配置。不過,在預設情況下,Apache的MPM模組配置檔案並沒有啟用。

    第三步:此時,我們就需要根據當前Apache伺服器所使用的MPM模組,來修改對應節點下的引數配置。首先,我們來看看mpm_winnt模組下的預設配置:

    #由於mpm_winnt模組只會建立1個子程序,因此這裡對單個子程序的引數設定就相當於對整個Apache的引數設定。

    ThreadsPerChild 150 #推薦設定:小型網站=1000 中型網站=1000~2000

    大型網站=2000~3500MaxRequestsPerChild 0 #推薦設定:小=10000 中或大=20000~100000

    對應的配置引數作用如下:ThreadsPerChild

    每個子程序的最大併發執行緒數。

    MaxRequestsPerChild

    每個子程序允許處理的請求總數。如果累計處理的請求數超過該值,該子程序將會結束(然後根據需要確定是否建立新的子程序),該值設為0表示不限制請求總數(子程序永不結束)。

    該引數建議設為非零的值,可以帶來以下兩個好處:

    可以防止程式中可能存在的記憶體洩漏無限進行下去,從而耗盡記憶體。

    給程序一個有限壽命,從而有助於當伺服器負載減輕的時候減少活動程序的數量。

  • 中秋節和大豐收的關聯?
  • 佛手種植方法?