答:經常遇到一些做WEB使用者咨詢伺服器支援線上人數問題,在此做個簡單介紹。非技術性讨論,如有疏漏或錯誤,敬請原諒和指導。
以普通單路伺服器為例,CPU處理多個程序,并非是同一時刻處理的,(可以精确到1/1000秒),而是串行處理的。CPU通常把1秒的時間分割成N份,然後按照順序,分别用1秒中的第1份處理第一個程序,用第二份處理第二個程序……用第N份處理第N個程序,也就是說CPU的處理能力,不是在于這一秒中内送出了多少申請,而是在于系統把CPU時間分了多少份。
例如通常系統預設程序數可以支援256個,而CPU将1秒分成100份的話,那麼剩餘的156個程序就要在下一秒中執行了,網卡得到請求資訊後進入記憶體進行排隊,是以通常記憶體大的話,會感覺支援線上人數多一些,而實質上是與CPU劃分時間片是有關的,性能越高的CPU劃分的時間片就可能越多,即處理速度就快。
當然在此說的一個程序并非隻一個請求,一個程序通常可以包含100個相同請求,這樣計算的話,CPU在1秒鐘内可處理請求數為100*100=10000,然而我們知道,大部分使用者不可能在一分鐘内隻送出一次請求,即隻點選一個連結。
此外,帶寬方面是支援線上人數的最關鍵的一個因素,伺服器按照咱們所保證的最大帶寬是5M,即5Mbit/s,相應的,伺服器的資料最高傳輸速度應為5/8byte/s*1024=640K/s 。一分鐘流量大約640K/S*60=38400K,假使每個使用者一分鐘内占用10K,即該一分鐘内支援線上通路人數為3840人。(圖檔類和視訊類站點不在此例,因為圖檔類視訊類每個使用者一分鐘内絕對超過10K),但是,我們并不能保證每個使用者在一分鐘内隻通路一個該站連結,假如每個使用者在一分鐘内點該站兩個連結的話,那麼支援線上人數應該在2000以下。
綜上所說,一台中低端伺服器通常最高支援線上人數為2000人左右,而且隻适合普通WEB伺服器和文字型論壇。不包括圖檔類下載下傳類視訊類等。其實一台伺服器如果真是線上人數達到這麼多了,也就需要加機器和帶寬了!
