Dan*_*ola 43 windows iis performance asp.net-mvc
我在我们制作的网站中遇到了性能问题,我不确定如何开始诊断它。
简短的描述是:我们有一个非常小的站点(http://hearablog.com),流量很少,在一个糟糕的专用服务器中,CPU 总是很高,有时它会保持 100% 几分钟,还有 w3wp.exe正在服用大部分。一个典型的场景是 w3wp.exe 占 60%,SQL Server 占 30% 左右。我们的数据库也很小。
详细说明和更多详细信息:
该站点由 Cari.Net 托管在一个非常糟糕的服务器中。从一开始我们就觉得服务器的行为不太正确,就像有些事情会花费太长时间,所以这可能是从一开始的配置问题。这可能也是我们得到了一个虚拟服务器,而我们应该有一个专门的一个,虽然我们没有证据说会中指出,除了服务器往往是相当缓慢的事实。
服务器是 Windows 2008 Standard 64 位,带有 SQL 2008 Express
硬件是 Celeron 2.80 GHz,1Gb RAM
该网站采用 ASP.Net MVC 开发,使用实体框架进行数据访问。
现在,这是非常糟糕的硬件,但我和这些家伙一起使用过其他服务器,具有相同(或更差)的硬件,并且性能比这好得多。也就是说,其他服务器有 W2003 和 SQL2005,我使用的是 ASP.Net“WebForms”2.0,没有 MVC,没有 LINQ,没有 EF;所以我不确定去 2008 年/其他东西是否意味着预计会有很大的性能损失。
我定期提供 MP3 文件(5-20 Mb),这是一个稍微不寻常的负载,也许这会导致某种问题?
这会导致 w3wp 使用大量 CPU 吗?
磁盘使用率似乎很低。内存通常在 90% 左右,但磁盘使用率似乎表明它没有太多分页。
我每天都会收到大量关于 SQL 超时的电子邮件,查询时间超过 30 秒,尽管我们所有的查询都非常简单(或者应该是,但 EF 可能把它搞砸了)。
这就是资源监视器在这些 100% CPU 的“冲刺”之一中的样子,以防万一那里有任何有用的东西。
以及一些性能计数器的快照:
现在,让我非常困惑的是 w3wp 的 CPU 使用率是如此之高。它真的不应该做太多......所以我的问题是......
非常感谢您。
丹尼尔·马廖拉
Car*_*res 42
您还可以使用 IIS 管理器中的工作进程 UI 并检查当前正在执行的请求,并查看它们卡住的位置(如果有)。打开IIS管理器->单击树中的服务器->双击工作进程图标->双击正在消耗CPU的工作进程,可以实时查看当前正在执行的请求,以便查看哪个模块正在占用时间。
还可以考虑使用失败请求跟踪来跟踪每个请求的一些时间,以查看它们花费了很长时间的时间。
好的,开始 - 服务器真的很糟糕。但它应该足够了。
对于虚拟化,请检查您的驱动程序。我知道没有隐藏 CPU 的虚拟化平台(我怀疑有人在赛扬上安装了 hyper-v 或 esx),但磁盘驱动程序等是一个指示。
CPU不应该那么高。可悲的是,有了这个 RAM,你几乎是敬酒 - 如果你开始添加一个分析器,你几乎会破坏你的内存。
我会:
用于检测:
http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/
有一些开始。如果问题更多 - 嗯 - “可分类”,这可能会给你一个提示。
我还会保留更长期的性能日志。注意您的 IO(秒/读取,秒/写入几乎是唯一相关的)。其余的都是 IO 明智的太模糊了 - 但是一旦你的 IO 开始花费比它应该更长的时间,光盘就会落后。
此时我会排除配置问题 - 至少作为主要指标。有些东西耗尽了您的 W3p 资源,现在您需要找出它是什么。
总的来说,这不是我喜欢的物理服务器 - 它太小了,恕我直言,在那里有一台机器是没有意义的。虚拟会更好;)
归档时间: |
|
查看次数: |
70266 次 |
最近记录: |