
任何人都可以推薦一個配置,或更好地向我指出此網路設定的完整案例研究嗎?
基本上我們有一個 php 網站,每天的點擊量約為 100,000 次。當嘗試在 VPS 上提供此負載時,由於 CPU 容量受到影響,它已經出現連線逾時等情況。我想指定一些東西,使其能夠擴展到每天約 250,000 次點擊。
目前伺服器是:
- 單核心 1Ghz 可突發 VPS(來自 2.6Ghz 雙核心 Xeon)
- 2GB 可突發 RAM(我再次發現可突發非常模糊)
- 每個 php 進程 32MB,運行表達式引擎(據我所知)或類似的繁重的東西
- 圖像相當密集的圖形頁面
- 某些頁面偶爾會進行幕後工作,例如 xmlrpc 到第三方伺服器
- 具有 modphp 的普通 apache (因此像圖像這樣的靜態檔案也需要完整的 php 進程——目前無法更改)
到目前為止,CPU 似乎是主要瓶頸,一些 apache 進程在請求期間使用了大約 30% 的 CPU。其他一些 apache 進程在 CPU 佔用率僅為 1% 時似乎要好得多;我認為這些是對靜態文件的請求。
所以。我們希望擺脫 VPS,使用某種具有非突發(可測量、保證)性能的專用或虛擬專用盒子。它必須能夠處理當前的流量,並在未來至少增加一倍。
您可以向我指出任何建議或研究嗎?
有沒有任何工具可以根據參數(例如每個 apache 進程的記憶體、動態請求的百分比、PHP 程式碼是重型 CMS 內容還是輕量級 hello-world 內容等)為您提供估計的伺服器規格?
答案1
我懷疑在這個問題上是否有任何有用的案例研究,因為性能總是會根據應用程式的複雜性而發生巨大變化 - 接近擬合的唯一方法是測量和推斷。
你沒有提到作業系統,但我會設定一系列效能監視器來捕捉線程、CPU 負載、記憶體統計、磁碟和網路資料等。由此,您應該能夠根據實際看到的負載確定所有這些組件的最小、平均和最大資源使用量- 一旦您有了這些統計數據(mhz/10k-users、mem/10k-users 等),您應該能夠快速推斷您需要的效能。即使在預期負載峰值時,也請確保計劃約 20% 的額外淨空。
我知道這需要大量的電子表格工作,但這是讓你感到自信的唯一方法 - 好吧,總有一種「投入大量硬體來解決問題」的方法,這種方法也有效,但成本很高:)
祝你好運,如果你需要幫助理解它,稍後再回來提供一些數據。
答案2
只需在apache前面以代理模式添加nginx,並將其設定為伺服器真正的靜態數據,而不需要接觸apache。你會瞬間加速。
然後我會將 apache2 切換到預分叉模式,並有 4-16 個孩子。
像外部連接這樣的後台工作確實很痛苦,我會重寫程式碼以使這些事情異步。
最後,您可能會在主節點(即儲存所有 VPS 的伺服器)上出現頻寬不足的情況。詢問您的託管公司,他們的主節點上是否有 1Gbit 連接,如果只有 100Mbit - 您可能想要更改託管。