2010-09-30 38 views
1

我們在我們的項目中使用了Appfabric緩存,並且遇到了兩個主要問題。Appfabric緩存(Velocity):不可超期緩存中的過期和不可讀的跟蹤日誌?

首先 - 我們正在使用命名緩存(沒有明確創建的區域)。其中一個創建爲Expirable = false,Eviction = none,TTL = 525600用於應始終可用的對象(在應用程序啓動時通過Put方法填充)。但時不時(我無法確定確切的時間跨度,也沒有連接到應用程序中的某些操作),此緩存中的所有對象突然過期 - 我可以從性能計數器中看到這一點 - 此緩存的對象計數變爲0,總過期對象計數器增加同時在此緩存中的對象數量。我是否缺少一些其他設置?我試圖通過沒有時間跨度的Put()插入它們,並且將時間跨度放在「一年」。幾分鐘後仍然過期...

第二個問題 - 當我試圖解決第一個問題時,我決定使用ETW跟蹤記錄功能在日誌中查看發生了什麼。我通過logman創建了tracelog並啓動它,等待緩存過期,停止日誌,並使用tracerpt從etl創建轉儲文件。一切都很好。但是這個轉儲文件是沒用的,因爲沒有可讀的數據,只有4400690073007400720 .......經過一些快速的研究,我想到了,我需要提供一個PDB或TMF文件來tracerpt,所以它可以「解碼」 binaryeventdata爲可讀的事件數據。是否有可能獲得一些適用於緩存的緩存?或者有一些其他的方式來使用ETF與appfabric來獲得一些有用的可讀日誌?

回答

2

我發現什麼問題是什麼時候你的緩存即將過期幾乎立即。 如果你的內存不足,緩存將被清除。

簽入eventvwr - >應用程序和服務 - > Microsoft - > Windows - Application Server System Services並選擇Operational。

查找等的警告:

服務可用內存低 - 緩存專用字節%的{2}緩存工作集%的{1}緩存數據大小百分比{0}可用存儲器百分比{21} CLR第二代計數{2013 }釋放內存百分比{0}。