一些背景信息:
上周四我们注意到这些网站进展缓慢,然后检查任务管理器发现其中一个网站占用了超过1.6Gb的内存。从那时起,我们一直在重新启动应用程序并观察它在一天中的大小逐渐增加。
我们显然有内存泄漏(或者至少,这是影响),但我正在试图找出如何追踪它的头发。
它似乎只发生在这个网站上,尽管据我所知,代码在它开始发生之前没有任何变化。然而,它是我们最繁忙的网站,因此它可能是一个交通问题。
调试诊断程序未发现任何问题。
快速刷新某些页面会导致内存迅速跳起,然后稍微下降,但是逐渐进展会一直向上。
我无法在我们的测试服务器上或本地复制该问题。可能是因为流量与它有关。
我怀疑问题在于数据库连接/锁定。但是,我不确定这会导致指定的问题。
有什么想法吗?
修改的
好吧所以不确定我是否已经找到了问题,但我们越来越近了。这绝对是SQL相关的。错误日志显示自上周四以来发生的大量错误。
这一切都发生在我们在服务器上运行一些Windows更新之后。其中一个更新在SQL服务器上失败,因此不确定这是否会导致一些问题。
我们收到的警告是:
XX在17到90之间!这听起来像是一个陷入僵局的问题吗?
接下来是以下错误:
这些与网站“昙花一现”的日志时间一致。
我们已将SQL Server上的页面文件大小增加到建议的大小,因为它设置为最大4Gb,但建议为12Gb。我想我们可能需要回滚周四发布的Windows更新,如果这不能解决的话。
不幸的是我无法进入活动监视器,因为它告诉我Timeout已过期!
修改
好的重启后我进入了Activity监视器。你会说几个睡眠过程是正常的?我们大概有127个睡觉。这是服务超过10个网站。
如果出现死锁或超时问题,NHibernate会不能正确清理其连接?
答案 0 :(得分:0)
好吧所以最后它看起来很复杂。 Sql死锁和数据问题,似乎被反病毒软件锁定或窒息在文件上。
关闭反病毒减少了问题,但我们仍然需要解决基础数据问题。