gpt4 book ai didi

.net - 工作进程回收,因为它达到了虚拟内存限制

转载 作者:行者123 更新时间:2023-12-02 14:23:45 25 4
gpt4 key购买 nike

我们为客户托管了一个相当大的(自行编写的)ASP.NET 网站。它由一个 Web 服务、一个网站和一个图像服务网站组成,这三个网站都位于各自的虚拟目录中。这三个虚拟目录位于一个应用程序池中。该池的内存限制(最大虚拟内存和最大已用内存)均设置为 500 MB。

但是,即使一次只有一个用户,应用程序池也会遭受多次回收。事件日志消息显示:

A worker process with process id of 'xxxx' serving application pool 'xxxx' has requested a recycle because it reached its virtual memory limit.

但是,使用 Process Explorer 观察工作进程没有显示任何支持此消息的信息。我应该观察哪些计数器来观察实际上受这两种设置限制的内存?

更新1

在任务管理器中观察该进程,显示“内存使用情况”和“虚拟机大小”约为 100 MB,但该进程仍被回收并显示上述消息。服务器上有 5 GB 可用物理内存...

更新2

虽然网站相当大,但问题集中在应用程序的一小部分。它执行查询(使用 Oracle)并将结果绑定(bind)到 gridview 和 Repeater Webcontrol。结果由简短描述和图标(通过图像服务网站加载)组成。如果我依次执行 10 个搜索操作,每个搜索操作给出 9 个结果,则工作进程会显示大约 100 MB 的内存使用情况和虚拟机大小并回收...

更新3切换图像服务网站的使用并不会产生更好的结果。所以我认为可以公平地说问题是别的问题。

最佳答案

只是作为一个观察...如果您的“图像服务”站点碰巧执行任何内联图像处理/生成,那么您可以通过不在任何一次性资源上调用 Dispose() 来快速吞噬内存 - 特别是那些包装 native 功能的资源。 .

这不是您问题的直接答案,但可能有助于调查导致内存使用猖獗的根本问题。

关于.net - 工作进程回收,因为它达到了虚拟内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/381088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com