新手站長躲不過的一個問題就是給自己的站配置什么樣的服務器?我們怎么樣才能花最少的成本租用高最合適的服務器?今天,我們的話題主要就是淺談這個站長們繞不開的問題,怎么根據網站訪問量、并發量來推算租用何種配置服務器?比如,你的網站每天5萬PV,那你的服務器需要什么樣的配置才能應對這5萬PV的請求呢?我們要如何計算?
在解決這個問題之前,小編有必要先跟大家科普一下這些名詞:
1)什么是PV?
PV是page view的簡寫。PV是指頁面的訪問次數,每打開或刷新一次頁面,就算做一個pv。
2)什么是吞吐量(Throughput) ?
按照常規理解網絡吞吐量表示在單位時間內通過網卡數據量之和,其中即包括本機網卡發送出去的數據量也包括本機網卡接收到的數據量。一個100Mb(位)的雙工網卡,最大發送數據的速度是12.5M字節/s , 最大接收數據的速度是12.5M字節/s, 可以 同時 收發 數據。
3)什么是并發用戶數?
即指同時執行操作的用戶(線程數)。
4)什么是響應時間?
即從請求發出到收到響應花費的時間 。
5)什么是QPS ?
QPS全稱為Queries Per Second,指每秒處理的查詢數(如果是數據庫,就相當于讀取)
6)什么是TPS?
TPS全稱為Transactions Per Second,指每秒處理的事務數(如果是數據庫,就相當于寫入、修改)
7)什么是IOPS?
即每秒磁盤進行的I/O操作次數。
計算模型
每臺服務器每秒處理請求的數量=((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/每天。
留足余量,應對突然事件
以上請求數量是均勻的分布在白天的9.6個小時中,但實際情況并不會這么均勻的分布,會有高峰有低谷。為了應對高峰時段,應該留一些余地,最少也要x2倍,x3倍也不為過。
115.7個請求/秒 *2倍=231.4個請求/秒
115.7個請求/秒 *3倍=347.1個請求/秒
23.1個請求/秒 *2倍=46.2個請求/秒
23.1個請求/秒 *3倍=69.3個請求/秒
最終結論
如果你的服務器一秒能處理231.4--347.1個請求/秒,就可以應對平均500萬PV/每天。
如果你的服務器一秒能處理46.2--69.3個請求,就可以應對平均100萬PV/每天。
(說明:這里每秒N個請求,就是QPS。因為我關心的是應用程序處理業務的能力。)
帶寬預算
結合你對外的網絡的帶寬需求,比如國內服務器便宜但帶寬很貴,很可能你在機房是與大家共享一條100M的光纖,實際每個人可分到2M左右帶寬。再好一點5M,再好一點雙線機房10M獨享市場價一般都要600RMB左右了,這個價格已經不便宜了。
一天總流量:每個頁面20k字節*100萬個頁面/1024=19531M字節=19G字節,19531M/9.6小時=2034M/小時=578K字節/s,如果請求是均勻分布的,需要5M(640K字節)帶寬(5Mb=640KB 注意大小寫,b是位,B是字節,差了8倍),但所有請求不可能是均勻分布的,當有高峰時5M帶寬一定不夠,X2倍就是10M帶寬。10M帶寬基本可以滿足要求。
以上是假設每個頁面20k字節,基本不包含圖片,要是包含圖片就更大了,10M帶寬也不能滿足要求了。所以在租用服務器怎么配置不能生搬硬套,需要結合自己站點的實際情況來合計估算。
最后,結合實際需求和過往運營經驗,來配置CPU、內存、帶寬、硬盤及線路。切記不可生搬硬套,要根據網站實際運營情況靈活變通。