WADLogsTable spammed with ‘WARNING: Virtual Bytes ……..’
In recent past, We have noticed that, Windows Azure end users, who leveraging Windows Azure Dedicated Cache feature with Windows Azure SDK 1.8 indicates that, their WADLogsTables are spammed with below mentioned warning messages, and during the investigation it is also noticed that available memory counter's from performance log are showing as normal at the time when these warning messages.
WARNING: <DistributedCache.ClientMemoryMonitor> Virtual Bytes ….., Memory Limit Mark: ……..; TraceSource 'w3wp.exe' event WARNING: <DistributedCache.ClientMemoryMonitor> High memory pressure detected in client; TraceSource 'w3wp.exe' event
As a side note, when you enable the Windows Azure Diagnostic (WAD) feature, ‘WADLogsTable’ in the configured storage namespace will be store all the application related logs, and since there is a tons of warning messages from ‘Cache Client Monitor’ component as mentioned above, the end users won’t be able to leverage WADLogsTable to monitor actual application related error/warning messages effectively.
I have also noticed that few of other users also raised the similar concern in the recent past, so I thought of blog to answer below queries :
1. Why the memory pressure warning from Windows Azure Cache Client is logged in to the ‘WADLogsTable', even though available memory counter’s from performance log are showing as normal.
Answer : Microsoft Product Group is already aware of this behavior, and this is fixed in Windows Azure SDK 2.0. This happens because CLR in IIS reserves a lot of memory upfront and ‘Cache Client Monitor’ basically monitor this virtual bytes, and add the Warning messages to WADLogsTable. You can safely ignore these warning messages unless you are using local cache feature of Windows Azure Cache.
2. Possible impact for the application, which leverages the Local Cache feature
Answer : The Cache Client Monitoring component from Windows Azure 1.8 SDK assume that it is under memory pressure due to the high amount of virtual bytes reserved by IIS. So Cache Client Monitoring will starts evicting items from local cache. The impact is that even through, you were enabled the local cache feature, Item would be fetched from the cache server at the time when Cache Client detect the memory pressure.
3. How to avoid spamming such warning messages in the WADLogsTable in the future.
Answer : This behavior is already fixed in Windows Azure SDK 2.0. In Azure SDK 2.0 the Cache Client Monitoring not depend on the virtual bytes for managing the client side memory pressure
References
Windows Azure SDK 2.0 Download
https://www.windowsazure.com/en-us/downloads/
Best Practices for using Windows Azure Cache/Windows Server Appfabric Cache
https://blogs.msdn.com/b/jagan_peri/archive/2012/09/09/best-practices-for-using-windows-azure-cache-windows-server-appfabric-cache.aspx