Umbraco,记忆。如何找到原因?

时间:2013-05-24 09:42:47

标签: asp.net .net iis memory umbraco

两个星期以来,我们的某个网站出现了问题,在“高峰时段”(Analitycs实时显示约170-200人),它消耗了所有可用内存(16GB)。正常状态在2-3GB之间分配。记忆增长不是恒定的,有时非常迅速,如4-16 GB / 2分钟,另一个时间增长是渐进的。在我们的两台服务器(Server1和Server2)上,此行为看起来都是一样的。

服务器配置:

公共互联网和实际应用服务器之间的流量正在由haproxy处理,目前所有流量都被定向到Server1,如果Server1停止响应流量进入Server2(主动 - 备份配置)。网站数据库(MSSQL 2008 R2)放在Server3上。在媒体服务器上,我们存储来自应用程序虚拟/媒体文件夹的所该服务器由Linux提供支持,此处没有任何问题。

Server1,Server2,Server3是放置在一台物理机器上的VM(Linux Debian KVM,最新版本的libvirt来自后端,机器非常稳定,尤其是数据库服务器)。媒体服务器是物理存储机器。

服务器1:

  • 操作系统 - Windows Server 2012 Standard
  • CPU - 8x2GHz
  • RAM -16GB
  • IIS8

服务器2:

  • 操作系统 - Windows Server 2008 Web
  • CPU - 4x2GHz
  • RAM - 4GB
  • IIS7

两台服务器的共同点:

网站基于Umbraco 4.7,.net 4.0。媒体文件夹连接为“网络位置” 物理上放置在媒体服务器(Linux Samba 3.x)上。在数据库中,我们有大约25000个节点。

我们观察到网站密集使用与媒体服务器的连接(最高200Mbit / s)。

我们更改了网址,以便媒体请求不再通过IIS。 网站被Windows Server 2008和Windows Server 2012所取代,但问题仍然存在。

我们认为问题出在代码中,所以我们回滚了自上个月以来的所有更改(使用我们的代码库),但这并没有解决问题。

我们已经使用过DebugDiag和Ants Memory Profiler等程序

http://imageshack.us/a/img823/8151/p4performancemonitor.png http://imageshack.us/a/img838/2319/p4tasks.png

我们还能怎样检查问题所在?

1 个答案:

答案 0 :(得分:1)

以下是我在Umbraco网站过去遇到内存问题时所使用的一些内容:

1)网站在代码中是否使用Linq 2 Umbraco?这在内存使用方面存在很多问题,特别是在负载较重的情况下,因此可能是导致问题的原因。如果您正在使用它,请查看代码以查找效率低下的Linq查询,并考虑使用Node API或XSLT替换代码。

2)网站是否正在运行使用前端文档API的任何自定义.net代码?一般来说,这可能非常缓慢且资源密集,如果可能的话,应该避免在前端(后台很好)。

3)检查任何其他自定义代码是否存在潜在的内存泄漏或资源使用效率低下。

4)浏览一下Umbraco的旧问题日志(目前找不到链接,抱歉!),这应该可以让您知道您是否遇到该特定版本的已知问题一把umbraco。如果是,您可能需要升级(根据您的Umbraco设置,这可能是也可能不是主要的麻烦)。

希望有所帮助!