gpt4 book ai didi

asp.net - IIS 服务器内存不足会导致 SQL 超时(SQL Server 在单独的机器上)吗?

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

我有一个 IIS Web 服务器,托管 400 个 Web 应用程序(分布在 30 个应用程序池中)。它们都是 ASP.NET 应用程序和 WCF 服务端点。服务器有32GB RAM,通常运行速度很快;尽管它的内存使用率为 95%。每个工作进程占用 500MB 到 1.5GB 的 RAM。

我还有另一个运行 SQL Server 的机器。那一个有足够的可用内存。

有时,Web 服务器开始抛出SQL 超时异常。起初每分钟几个,然后迅速增加到每分钟数百个;有效地使服务器瘫痪。此问题影响所有池中的应用程序。有些请求仍然完成,但大多数都没有。当发生这种情况时,服务器上的 CPU 使用率约为 30%(这是该机器上的正常负载)。

发生这种情况时,我们仍然可以使用 SQL Server Management Studio(从 IIS 服务器)成功(且快速)执行请求。

修复方法是重新启动 IIS。然后一切都会恢复正常,直到下一次。

因为服务器运行内存非常低,我觉得这就是原因。但我无法解释内存不足和 SQL Timeout 异常突然爆发之间的关系。

有什么想法吗?

最佳答案

内存压力可能会触发分页和垃圾回收。两者都会引入延迟,否则不会出现延迟。

GC 处理 32GB 数据可能需要几秒钟的时间。为什么所有应用程序会同时处理GC?因为在内存利用率约为 95% 时,Windows 设置了 CLR 监听的“内存不足”事件。它会尝试释放内存以帮助其他进程。

如果应用程序陷入分页狂潮,这也可以解释正常执行中的巨大延迟。

不过,这只是猜测。您可以尝试通过查看“硬页错误/秒”计数器来证明。还必须有一个“full GC”或“Gen 2 GC”计数器。

修复将以比物理内存限制更高的裕量运行。

关于asp.net - IIS 服务器内存不足会导致 SQL 超时(SQL Server 在单独的机器上)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346956/

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