效能測試 LAMP-Cluster - 如何找到瓶頸?

效能測試 LAMP-Cluster - 如何找到瓶頸?

我已經設定了一個由 3 個節點組成的集群,運行一個 LAMP 應用程序,並使用 HAProxy 進行負載平衡。現在我想優化和負載測試系統。因此,我取消了 jmeter-ec2,它啟動了來自愛爾蘭地區的 15 個 AWS-t1.micro 實例,針對位於德國專用資料中心的叢集執行 jmeter 測試。

問題是,伺服器在 0.5 負載的情況下幾乎不工作,而 jmeter 僅報告大約 70 tps。現在我想知道瓶頸在哪裡以及為什麼系統不能提供更多的tps。

我正在尋求如何解決此問題的協助,以便調整一項又一項服務。正在運行 MySQL Galera、Apache、NginX 和 Solr 來為應用程式提供服務,所有這些都具有預設配置設定。此叢集由 3 個新的裸金屬節點組成,配備 32GB RAM 和透過千兆位元 LAN 相互連接的四 XEON CPU。

預先感謝您提供有關如何系統地調整/配置系統的任何有用的意見。

答案1

嘗試移除系統的某些部分以找到瓶頸。 15 台測試伺服器聽起來非常多!您應該能夠從單一測試單元中獲得 1000 的 TPS。您沒有要求 HAProxy 等待回應,對嗎?即利用 maxconns 功能和排隊功能?就像我說的嘗試簡化,但如果您確實認為它是 HAProxy 那麼請發布配置。

答案2

我認為測試客戶端對我來說顯然是一個問題。

  1. 您正在使用 t1.micro。它們基本上是免費的,而且免費是有原因的。切換到至少使用 m3.medium、large 或 xlarge 進行測試。完成後您可以將其關閉。

亞馬遜文檔的評論T1 微型實例總結得很好。

“尖刻的表演”,

“旨在支援每分鐘 10 個請求”

但對於基準測試,您需要嘗試壓垮您的伺服器。您希望每秒鐘有數百個請求。這比這些所能提供的要多一些。

  1. 測試集群不是測試客戶端的本地集群,這會帶來額外的延遲。您的集群位於 1600KM 之外的另一個國家。這也沒有幫助。因此請務必注意第 3 點。

  2. 確保您的測試客戶端正在多執行緒運行。

  3. 使用 EU(愛爾蘭)- eu-west-1,這是測試端點的更好選擇。

相關內容