2014-01-12 240 views
2

我們計劃在託管於某些Amazon EC2實例上的網站上執行一些性能測試。問題是,如果所有HTTP流量都來自相同的IP地址(例如,在許多不同的客戶端主機共享相同的公共IP的情況下),EC2負載均衡器是否會將所有流量僅轉發給其中一個Web服務器(實例) ?Amazon EC2負載均衡器上的負載平衡算法

+0

使用多臺機器的負載測試效果會更好。您可以像這樣產生更多的負載,並通過ELB獲得更加真實的負載平衡。 – Guy

+0

同意。更多機器可以產生更多的負載。不幸的是,我們的限制是我們已經從同一臺機器產生負載。 – pktCoder

回答

0

過去就是這樣,我認爲它仍然是一個問題。它沒有那麼多,它會將所有流量轉發到單個實例,但它可以將所有流量發送到單個區域。

ELB通過DNS循環進行一些負載平衡。緩存的DNS查找可能會導致將多個請求路由到同一個區域。

+0

感謝您的洞察力。不知道是否有任何關於AWS中負載均衡器工作原理的描述。理論上,負載平衡器可以通過插入額外的cookie(特定於負載平衡器)扇出來自相同IP的請求。不知道它是否在AWS負載均衡器上實施。 – pktCoder

1

過去,這是一個問題,由於客戶端的DNS緩存確實(見我的回答Can Elastic Load Balancers correctly distribute traffic to different size instances更多關於事務的前一個狀態),但大多已與近期出臺Elastic Load Balancing [...] Cross-Zone Load Balancing顯然補救:

我們很高興地宣佈支持跨區域負載平衡,改變了Elastic Load Balancing(ELB)路由傳入請求的方式,使您更容易跨多個可用區域部署應用程序。 [重點煤礦]

的公告已經提供更多的信息,而是鏈接到Request Routing的細節:

如果您啓用跨區域負載均衡,您再也不用擔心客戶端緩存DNS信息將導致請求分佈不均勻。現在,ELB確保請求平均分配給您的後端實例,而不管它們所在的可用區。 [重點煤礦]

這仍然沒有大綱使用的確切的算法,但分佈不均的主要來源似乎像這樣(我看過一個帖子被大量AWS客戶最近,針對誰報告指出他們的指標在轉換開關後變得或多或少平坦的曲線,但現在不記得URL)。

+0

感謝Steffen獲取更多信息。當所有用戶使用相同的IP地址訪問一個網站(在AWS中託管)時(例如,如果用戶都共享相同的公共IP),我正在尋找一種極端情況。不知道ELB是否會將請求負載平衡到不同的主機。請注意,存在一個問題:來自同一用戶的請求通常需要轉發到同一個服務器實例。如果ELB插入自己的cookie,它可以用它來判斷請求是否來自同一個用戶。 – pktCoder