2010-07-19 102 views
4

我在IIS6 Win2003上安裝了Web應用程序。該應用程序連接到w3wp.exe進程,在3-4分鐘後達到CPU的50-70%,它被回收(強制執行)。我在這個項目中沒有Cache的地方,所以我的問題是關於這種情況,如果我設置AppPool回收限制和過程將每隔幾分鐘回收一次以避免高CPU超載,除非我找到導致它可能需要幾年(heh)的原因...應用程序池回收時緩存會發生什麼?

雖然Web應用程序項目,輸出緩存和緩存有兩種類型的緩存。

一旦我回收應用程序,其中兩個會發生什麼?

如果其中兩個被刪除,我應該怎麼做才能保持這些活着,即使我回收應用程序池?

回答

1

你可以看看進程外緩存,將生存的應用程序池重新啓動,並在多節點的應用程序可以共享,

看一看速度(微軟的AppFabric)或SharedCache(開源)

6

緩存是應用程序域的一部分,因此回收應用程序池將使所有緩存項無效。

如果您修改web.config文件或bin文件夾,也會發生這種情況。

+0

感謝您的意見,但第二個問題比第一個更感興趣。 – eugeneK 2010-07-19 11:36:08

+0

你不能「讓他們活着」。你的代碼應該檢查緩存,看看這些項目是否存在,或者如果沒有,則生成緩存項目。這意味着第一次訪問應用程序時,它會比後續訪問慢。這是沒有辦法。 – 2010-07-19 11:56:54

+0

@菲利普史密斯,除非我將緩存存儲在像MemCached這樣的外部資源中? – eugeneK 2010-07-19 12:00:17

相關問題