確保 Magento 免受高流量狀況的影響

確保 Magento 免受高流量狀況的影響

你好,我有一個帶有 php (magento) 腳本的 apache 伺服器 2.2。

正常情況下,一個 php 頁面會在 1-2 秒內呈現,這還可以。

有時,在高流量或粗糙的蜘蛛機器人中,所有 Apache 插槽都會被阻止。

單一請求運行速度非常慢,並且使用越來越多的內存,直到 mysql 呼叫 oom-killer,它殺死了我需要的 tomcat。

首先我嘗試了 mod_evasive。但是,如果我將其配置得太嚴格,我將無法快速瀏覽,如果我將其配置得太寬鬆,則請求可以更快地處理。

問題出在php檔案上。其他資源(例如圖像等)不會阻礙插槽。

其次,我嘗試透過降低 MaxClients 來限制它。但現在一個客戶端可以阻塞所有插槽。

任何想法如何限制每個客戶端的最大連接數或更好的每個 ip 的最大並發 php 腳本...

其他 Apache 用戶端如何配置以避免超出其處理能力的請求,而不偏向任何客戶端?

答案1

將您的網站置於來源站拉取 CDN 後面 (雲耀我想到的是一種選擇,還有其他選擇。

正常情況下,一個 php 頁面會在 1-2 秒內呈現,這還可以。

不,這不對。

優化您的程式碼,使其不需要產生頁面的秒數。

然後快取全部這些事。

  • 快取頁面請求
  • 使用 Memcached 快取資料庫查找。
  • 在 CDN 上快取圖像。
  • 使用 APC 或 eAccelerator(或類似的操作碼快取)快取 PHP 級別
  • 就此而言,也可以在 CDN 上快取整個頁面。

如果您還沒有這樣做,請將您的資料庫伺服器轉移到單獨的伺服器上,為其提供公制的記憶體負載和超快的磁碟,然後從表中高速緩存。 Magento 在連接等方面是一個蕩婦,所以你需要你的資料庫伺服器非常快。

這樣當使用者查看您的網站時,內容就會從快取中提取某處並且不必生成每一個時間。


我冒昧地在你的網站上運行了 Yslow。以下是調查結果的摘要(儘管您應該自己做這件事..)

  1. 減少 HTTP 請求。 基本上,您應該將 javascript 和 CSS 檔案合併為一個,這樣就可以減少發出多個請求的開銷。
  2. 使用內容交付網路 (CDN)。 我已經說過了^^上面^^,但Yslow告訴我有60不在 CDN 上的靜態組件。其中 1.4MB 來自 www.brainyoo.de。這讓我想到..
  3. 將資產移至多個無 Cookie 的網域。正在從與網站其餘部分相同的網域載入 60 個資產。這意味著瀏覽器必須等待每個載入完畢才能載入下一個。解決這個問題的常見方法是將靜態資產放在單獨的、無 cookie 的網域中(以便請求更小、更快,並且不包含 cookie 資訊)。
  4. 將 Javascript 移至文件底部。 被認為是可擴展、快速網站的最佳實踐。
  5. 縮小 Javascript 和 CSS。 嚴重地。您正在發送近一兆位元組的 JS 和 CSS,它們可以被縮小並且...
  6. 使用 Gzip 壓縮組件。有 39 個可以壓縮的純文字組件。
  7. 新增過期標頭。 有 63 個靜態檔案沒有遠期的過期日期,因此瀏覽器不會有效地快取它們。

總 YSlow 等級 D。因為這樣,a) Apache 伺服器提供的流量就會減少。 b) 載入速度更快,因此訪客不會長時間鎖定 Apache 進程。

答案2

一般來說,如果magento運作緩慢或時不時地終止你的伺服器,你的伺服器會在更多的記憶體/CPU功率下運作得更好。您可以調整您的伺服器以順利運行 magento,但這需要 a) 一些時間和 b) 必要的(伺服器端)資源。

你做了多少資料庫調整? magento 是 PITA,但如果有足夠的 RAM,可以配置得更快。

使用類似的工具mysql_tuner或者mysql 調優入門調整你的資料庫。

並使用盡可能多的快取。我不記得是否支持 APC;記憶體緩存更好。

您還應該關注 IOWAIT,這是高清性能非常差的提示,這可能有不同的原因。


編輯:

其他 Apache 用戶端如何配置以避免超出其處理能力的請求,而不偏向任何客戶端? / 我想知道其他 apache 在收到超出其處理能力的請求時如何處理這種情況

通常您會根據預期的流量擴展您的設定。如果您的伺服器在蜘蛛和爬蟲攻擊時宕機,則要么您有一些性能非常差的腳本,要么您的伺服器太小。

當我期望我的伺服器上有 1000 個使用者時,我使用可以處理 5000 個客戶端的伺服器(並且我監視 error.log 是否已達到 max_clients)

速率限制是可能的,但您將獲得與 mod_evasive 相同的體驗。它確實像 DDOS 一樣有幫助,但如果您需要調整您的設置,則沒有幫助。

相關內容