Azure应用服务可用性丢失。内存计数器页面读取数/秒处于危险级别

Vol*_*kyi 9 asp.net-mvc out-of-memory azure azure-diagnostics azure-web-sites

环境:在具有两个实例的Azure应用程序服务上托管的Asp Net MVC应用程序(.net framework 4.5.1)。应用程序使用Azure SQL Server数据库。此外,应用程序使用MemoryCache(System.Runtime.Caching)进行缓存。

最近,我注意到该应用程序的可用性下降。它几乎每天都会发生。 在此处输入图片说明

在此处输入图片说明 观察结果:实例RD0003FF1F6B1B上的内存计数器页面读取数/秒处于危险级别(242)。超过200的任何值都可能导致该实例上任何应用的延迟或失败。

“每秒读取的内存计数器”是什么意思?如何解决这个问题?

Tom*_*SFT 11

“每秒读取的内存计数器”是什么意思?

我们可以从此博客获得答案。建议的“页面读取/秒”值应小于90。较高的值表示内存不足索引编制问题

“每秒页读取数表示每秒发出的物理数据库页读取数。该统计信息显示所有数据库中的物理页面读取总数。由于物理I / O昂贵,因此您可以通过使用更大的数据缓存,智能索引和更有效的查询,或者通过更改数据库设计来使成本最小化。”


如何解决这个问题?

根据我的经验,您可以尝试在App Service中启用本地缓存

您可以使用以下应用程序设置在每个Web应用程序上启用本地缓存:WEBSITE_LOCAL_CACHE_OPTION = Always

默认情况下,本地缓存大小为300 MB。这包括从内容存储库复制的/ site和/ siteextensions文件夹,以及任何本地创建的日志和数据文件夹。要增加此限制,请使用应用程序设置WEBSITE_LOCAL_CACHE_SIZEINMB。每个Web应用程序最多可以增加2 GB(2000 MB)的大小。

  • @VolodymyrGorodytskyi怎么样了?我面临着同样的问题 (5认同)
  • 但这是页面错误的问题,与Web内容(D:/ home / site / ...中的文件)的本地缓存有何关系,页面读取/秒数高意味着我们的内存不足管理,我的问题是我有足够的内存并且我仍能获得较高的页面阅读量,还是我错了? (2认同)