2015-03-25 49 views
2

,有什麼建議值以下:AWS ELB上連接耗盡,空閒超時和端口有效期的建議值是多少?在ELB

端口80粘性有效期限:

電流:120秒
推薦:?

端口443粘性有效期限:

電流:130S
推薦:?

空閒超時:

電流:90
推薦:?

連接排水:

電流:120秒
推薦:?

不知道我是否有正確的設置。我目前有兩個Web服務器實例。問題是大多數用戶經常從一臺服務器切換到另一臺服務器。這讓用戶從一臺服務器上離開他們的$ _SESSION,並且不能執行到另一臺服務器。在web應用程序上執行腳本的時間長是否會成爲此問題的可能原因之一?我是否應該重新編碼我的腳本以創建會話cookie,以便用戶切換到另一個服務器,以便他們可以執行他們從另一個服務器獲得的會話?

回答

1

很難給出具體細節,因爲它取決於您的使用案例。不過,幾點意見:

  • 港口粘性是antipattern;這表明您正在使用本地狀態。典型的應用服務器應該是無狀態的,而狀態則保存在數據庫中。 (redis或memcached(不是數據庫)對於會話管理速度非常快)

  • 連接排空應該儘可能短,大致不超過預期的請求。這隻有在您的部署系統瞭解如何處理它時纔有用。

  • 空閒超時時間:取決於。你在使用異步請求嗎?

連接耗盡和空閒超時都是AWS ELB的新功能 - 它們在一年前不存在。

+0

所以我的選擇可以禁用端口粘性並使用Elasticache服務(memcached)?因此,用戶可以將他們的會話從ELB實例保存到實例,因爲他們的會話存儲在內存中。 Elasticache是​​否可以將php腳本上生成的用戶會話從服務器傳送到服務器?是的,我在網絡應用程序上有很多異步請求,包括來自第三方API的請求。 – 2015-03-27 05:26:32

+0

這是正確的,強烈建議在其他位置存儲會話(memcache或完整數據庫)。這裏有一個快速的概述:http://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions – tedder42 2015-03-27 05:29:14

+0

聽起來很酷,謝謝讓我檢查,但使用memcached,當它涉及跨地區的網絡延遲時,是否會有問題? – 2015-03-27 05:34:08