我想描述在分析生产中的asp.net应用程序时发现的奇怪问题,并要求对以下问题提出一些建议或意见。应用程序池回收中的奇怪内存增加
应用程序通常运行大约80-90 MB的内存占用量。由于目前为止没有检测到内存泄漏,所以这看起来很稳定 - 随着时间的推移内存使用量没有轻微增加。然而,当应用程序池回收时(我使用共享主机并通过记录来判断应用程序闲置20分钟或每30小时左右发生问题时会发生问题)。问题是使用过的内存在回收期间几乎翻了一番 - 大约160-170 MB,没有任何解释。这是令人困惑的,因为人们普遍认为回收应该清除记忆和所有其他资源 - 至少我是这样理解的。系统持有大约7-8小时的内存量,然后内存使用量下降到90-100 MB的平常水平,没有明显的原因(至少我不知道)。所有的时间,应用程序似乎运作良好 - 没有显着的延迟或网站可用性的麻烦 - 对用户来说,一切似乎都没问题,至今没有任何抱怨。查看随时间变化的内存消耗情况 - 它看起来几乎就像一个阶梯函数。
重要的是,我无法在我的测试环境中重现这种行为。有时候,我从提供商管理员那里得到笔记,说我的应用程序使用的资源比允许的多,这真让我感到困扰。
所以,我想知道 - 是否有任何应用程序池回收不释放所有内存资源的情况?有什么建议或指引我应该关注什么?我不是这方面的专家,但我一直在阅读关于重叠回收,回收序列化问题和更多问题的任何想法......任何想法?类似的经历?
感谢