2011-11-01 99 views
1

我正在爲危機情況做一些規劃(上次我們每天從4k個訪問者到1.3M),並且我注意到Azure AppFabric緩存的較低端有一些相當低的同時連接限制估計同時Azure Appfabric緩存連接

128Mb & 256Mb高速緩存=例如10個併發連接。

我正在使用緩存作爲webrole會話狀態 - 但僅在非常有限的一些情況下才將其放入(現場網站上個月已達到最高0.03MB!)如何計算最大連接數 - 這是否等於我指向它的服務器數量? CPU的數量?

我還沒有嘗試過,但縮放緩存看起來可能是24小時操作???,因此對緊急需求的擴展響應不夠。

只是在一些指導原則幫助我挑選和初始緩存大小併合理擴展之後。

回答

2

您擁有緩存的連接數基本上是您擁有的DataCacheFactory實例的數量。出於這個原因,儘可能少地使用這些實例是一種好習慣。您還需要確保,當初始化DataCacheFactory的任何Azure實例在該實例停止時應該處理該實例,這有助於清除它已向服務開放的連接。

但是您說您正在使用緩存作爲會話提供程序。這爲每個角色實例創建了自己的DataCacheFactory。所以基本上每個角色一個連接。話雖如此,會話提供者似乎對它沒有使用的連接進行清理時有點鬆懈,所以最好過度配置連接數。

您需要注意的另一件事是緩存上的「事務每小時」限制。如果對頁面的每個請求都需要訪問會話信息,這就是您可以在一個小時內處理多少個頁面請求。

調整緩存大小實際上非常快,通常只需要一分鐘左右。但是每24小時只能更換一次。所以如果你增加了負載,你可以使緩存變大,但是如果負載對於增加的緩存來說太大了,那麼你需要等待24小時才能再次改變它。所以你可能最好在第一次調整大小時將緩存大得多,並在第二天將其縮小。

編輯: 在缺省情況下,如果你不通過配置緩存開啓儘管這些信息在,書寫時是正確的,2011年十一月(1.6)更新到SDK推出了緩存的連接池碼。這使得只有一個靜態DataCacheFactory並不重要,這意味着如果要爲會話和應用程序數據使用相同的連接信息,這可能都是一個連接。更多details can be found on MSDN

+0

使用會話提供程序是否意味着每個頁面都依賴於緩存並導致緩存命中?如果不是,它只是一個頁面的子集。任何想法幕後發生的事情?每小時的交易量是不是明顯的計量? – Andiih

+0

基本上是的。除非你爲這個調用禁用會話(這包括ajax調用,我認爲即使是像css和圖像這樣的資源調用,但這是別人可以回答的另一個問題)。通常,交易在任何地方都不可見。顯然,你可以將它們看作應用程序結構應用程序的一部分,但我沒有親自嘗試過。 – knightpfhor

+0

「多數民衆贊成在另一個問題」......是現在:-) http:// stackoverflow。COM /問題/ 7977963 /時,使用-Azure的AppFabric的緩存作爲一種會話狀態提供商 - 什麼 - 原因 - 一個反 – Andiih