擴充 apache 伺服器

擴充 apache 伺服器

我有一個運行 apache2 的 Ubuntu 伺服器,我預計它會在有限的時間內受到大約 500-1000 個(並發)用戶的攻擊。此伺服器提供連接到 postgresql 資料庫(大小約為 20 Mb)的自訂(相當輕)php 頁面和靜態內容的混合。硬體穩定且相當強大:

  • 英特爾至強 E5420 @ 2.5 GHz
  • 12 GB 內存

在之前對該伺服器的匆忙期間,我增加了 ServerLimit、MPM 模組的 MaxClients,並減少了 Timeout 和 KeepAliveTimeout。它確實有效,但進展緩慢,我感覺到還有更多事情要做。您建議如何設定 Apache 伺服器來處理這種負載?

答案1

在這種情況下,您的瓶頸將是 PHP 及其對資料庫的處理。如果每次呼叫都打開一個新連接,那麼您很可能會在磁碟存取上遇到 I/O 牆。最好的選擇是將資料庫和靜態內容放在 RAM 磁碟中,並根據需要將變更提交到磁碟上的資料庫。還可以在 PHP 中使用 RAM 專用的快速雜湊查找來維護高效的查詢快取機制,這樣您就不會因為與查詢快取查找相關的不必要的處理週期而給 postgresql 帶來負擔。儘管 postgresql 在查詢快取方面可能比您自己的程式碼更有效,但它並不像從一開始就不需要連接那麼快。

答案2

您的伺服器應該能夠輕鬆處理事情。只是一些注意事項:

  1. 使用 SSL 會增加您的計算要求。因此,請使用純 HTTP。
  2. 使用 prefork MPM 會增加您的記憶體需求。因此,使用工人 MPM。
  3. 使用更多內核的更多並發性將提高性能。
  4. 將更多 RAM 專用於 PostgreSQL 資料庫。

這些只是通用指南。

相關內容