我在Azure中有一个应用服务。它显示了两个名为Average Memory Working Set
和Memory Working Set
的指标。现在,Memory Working Set
被定义为进程中线程最近触及的内存页面集。门户网站中显示的这两个图表如下:
现在,我有三个问题:
内存工作集是进程中线程最近触及的内存页数。我认为这意味着内存工作集只会增加,如果我的代码有一些内存泄漏,导致其他页面被加载到内存等。我的问题是,任何外部因素,如请求数量是否会对内存工作集即如果请求从200上升到500,内存工作集会增加吗?如果是,为什么?
如何计算平均内存工作集?它是随着时间计算的吗?查看图表,我发现平均内存工作集和内存工作集的值几乎相似。
答案 0 :(得分:1)
让我尽量回答:
1.a要了解专用的最大内存,您应该检查该过程的“私人工作集”。我猜您可以在任务管理器中或在KUDU的帮助下(在Azure中)找到此信息。做一些谷歌,你会很容易找到它。
1.b达到限制后,进程将访问共享工作集。
2.a内存工作集是'应用程序在MiB中使用的当前内存量'。
2.b如果请求上升了2.5倍,那么只要存在可分配的可共享物理内存,内存工作集最有可能随着新对象的创建而增加。
3.a平均工作记忆集是'应用程序使用的MiB中的平均内存量'