為大量靜態內容服務需要多少 RAM?
我想為我的靜態內容製作一個伺服器。
我需要提供一些 3-10 mb 的文件——很多。(我還將在此伺服器上放置一些 .js 和 .css 以及來自我網站的圖像)。
我想到了 nginx 和 G-WAN(http://trustleap.com/)。
我不知道提供靜態內容需要哪些資源?每次文件傳輸使用多少 RAM?
如果我將使用具有良好埠和巨大頻寬的 256 mb(或 512 mb)VPS,我將能夠提供多少次點擊/秒(3-10 mb 文件)?(我知道“這取決於” - 但請根據經驗或理論給我一個粗略的估計)。
沒有很多文件,只是經常下載 - 我應該考慮記憶體,還是這只會使用我提供命中所需的記憶體?
如果您使用的是 nginx,那麼每個活動連接的成本只有幾 KB。如果您使用的是 Apache 之類的東西,每個連接將有一個執行緒,這意味著每個連接有數百 KB 甚至兆字節。
但是,nginx 不支持 Linux 上的非同步磁碟IO(因為 Linux 上的非同步磁碟 IO 在設計上基本上被嚴重破壞了)。因此,您將不得不執行許多 nginx 工作程序,因為每次磁碟讀取都可能會阻塞整個工作程序。如果您使用的是 FreeBSD,這不是問題,而且 nginx 將在非同步磁碟和網路 IO 上創造奇蹟。但是,如果您在這個項目中使用 Linux,您可能想要堅持使用 Apache。
但實際上,最重要的是磁碟記憶體而不是您選擇的 Web 伺服器。您需要大量空閒 RAM,以便作業系統記憶體這些文件并快速讀取。如果“熱集”超過 8 GB,請考慮使用更少的 RAM 和便宜的 SSD,因為成本/收益比可能會更好。
最後,考慮使用 CDN 來解除安裝它,並獲得一個非常便宜的伺服器。提供靜態文件是他們所做的,而且他們做得非常快而且非常便宜。SimpleCDN 價格最低,但 MaxCDN、Rackspace、Amazon 等都是 CDN 領域低端的大玩家。