針對高流量設定 CentOS

針對高流量設定 CentOS

這裡有新的系統管理員,管理 CentOS 伺服器。過去的一周是我職業生涯中最激動人心的一周之一,充滿了學習各種新事物。今天我還有另一個任務,那就是確保我們的伺服器能夠處理比我們舊的共享主機能夠處理的更多的事情。

我們的 GoDaddy 共享主機最初限制為 200 個並發連線。最終我們超越了這一點(通常在活動/行銷活動期間)並轉向虛擬專用伺服器。我假設連線數將由 Apache 處理。

為了允許更多流量進入,我應該注意哪些配置?

答案1

您只是在談論提供靜態網頁嗎?如果您有任何類型的程式設計後端,那麼會有很多不同的答案,但對於 Apache 來說,這絕對是進程模型和允許的進程/執行緒數量。您還需要閱讀常規UNIX Apache 調整指南,並確保每個使用者有足夠的進程並開啟檔案(ulimit -n 和-u 顯示這些;在/etc/security/limits.conf 中使用nproc 和nofile 設定並透過以下方式啟用)在 /etc/pam.d/login 中新增「需要會話 /lib/security/pam_limits.so」)。

在較舊的 Apache 中,您始終使用“prefork”模型,該模型為每個線程產生單獨的進程 - 這是舊的 MaxClients 設定。如果您使用一堆模組之類的東西,200-250 個 Apache 進程很容易就會填滿一台只有少量 RAM 的機器。確保您使用的是較新的 Apache 並使用“worker”MPM,它使用不同的線程模型,它會讓您每台伺服器獲得更多的效能(需要更多設定來調整)。

如果您需要極高的可擴展性,請從 Apache 過渡到 nginx 等。但如果場景只是“超過 200 個”,Apache 就可以了。

確保將超時設定為相當低的值,除非您要提供巨大的文件,例如 30 個左右。

使用壓縮和快取。

答案2

此外,當您達到更高的負載時,您可能需要調整 Linux 防火牆設置,尤其是 conntack 模組。網路上有一些文章,我的一篇是:http://timanovsky.wordpress.com/2009/04/10/tuning-linux-firewall-connection-tracker-ip_conntrack/

相關內容