Кэш Appfabric (Velocity): срок действия в не истекающем кеше и нечитаемый журнал трассировки? - PullRequest
1 голос
/ 30 сентября 2010

мы используем кэш Appfabric в нашем проекте, и мы столкнулись с двумя основными проблемами.

Во-первых, мы используем именованные кэши (без явно созданных областей). Один из них, созданный как Expurable = false, Eviction = none, TTL = 525600, используется для объектов, которые должны быть всегда доступны (заполняется при запуске приложения с помощью метода Put). Но время от времени (я не мог определить точный промежуток времени или соединение с определенными действиями в приложении), весь объект в этом кеше внезапно истекает - я могу видеть это по счетчикам производительности - количество объектов для этого кеша становится равным 0, общее количество истекших счетчиков объектов увеличивается количества объектов в этом кеше одновременно. Я пропускаю некоторые другие настройки? Я пробовал как вставлять их через Put () без таймспа, так и пут с интервалом "год". Все еще истекает через несколько минут ...

Вторая проблема - когда я пытался решить первую проблему, я решил использовать функцию ведения журнала трассировки ETW, чтобы увидеть в журнале, что происходит. Я создал tracelog через logman и запустил его, дождался истечения срока действия кэша, остановил журнал и использовал tracerpt для создания файла дампа из etl. Пока все в порядке. Но этот дамп-файл бесполезен, потому что нет доступных для чтения данных, только 4400690073007400720 ....... После некоторых быстрых исследований я понял, что мне нужно предоставить файл PDB или TMF для трассировки, чтобы он мог "декодировать" двоичные события в удобочитаемые данные события. Можно ли получить некоторые из них для кэша appfabric? Или есть какой-то другой способ использования ETW с appfabric для получения полезного журнала?

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Я выяснил, в чем проблема, когда ваш кэш истекает почти мгновенно. Если у вас мало памяти, кеш очищается.

Установите флажок в eventvwr -> Applicatin and Service -> Microsoft -> Windows - Системные службы сервера приложений и выберите Operational.

Ищите предупреждения как:

Недостаточно доступной памяти службы - процент личных кэшей {2} процент рабочего набора кэша {1} размер данных кэша процент {0} процент доступной памяти {21} CLR Generation2 count {2013} выпущенный процент памяти {0}.

0 голосов
/ 08 марта 2011

Здесь есть объяснение для преобразования файла журнала в cvs: http://msdn.microsoft.com/en-us/library/ff921010.aspx

Но я даже не могу использовать инструмент трассировки.

...