我有一台运行IIS 7.5和SQL server 2010的专用服务器。服务器CPU负载通常接近100%。SQL server不会占用太多资源,但w3wp进程会占用大量的CPU (通常是70+%)。
我想找出造成这种压力的原因:*太多静态文件请求(可以添加CDN )*太多ajax请求(我正在考虑comet/web套接字)*单个asp.net页面消耗太多处理能力(应该很容易优化)
你会从哪里开始寻找从哪里开始优化呢?
发布于 2012-06-24 20:40:11
最简单的方法是在生产环境中分析应用程序。我不确定这在你的情况下是否可行。一些选项:
的生产性能几乎没有影响
发布于 2012-06-24 20:53:13
解决这个问题最简单的方法可能是在服务器上安装New Relic。试用期为30天,我认为这应该会给你足够的时间来弄清楚这件事。它将向您展示长时间运行的SQL查询、.NET方法,以及您能想到的几乎所有其他内容。它使得识别瓶颈变得非常容易。
顺便说一下,我建议使用New Relic,因为听起来您的问题在生产环境中。New Relic不是一个非常详细的分析器。它收集了足够的信息来提供帮助,但又不至于减慢服务器的速度。这使得它非常适合于这个目的。
但是,如果您可以在开发环境中重现该问题,则可以尝试使用免费的Eqatec profiler。
发布于 2012-06-26 01:15:03
一个很好的起点是启动开发工具( IE /Chrome中的F12)并查看网络选项卡下的计时。这将向你展示一个瀑布式的图表,告诉你页面是如何加载的,并应该帮助你识别任何加载速度特别慢的静态文件,这些文件可能会被明智地移到cdn中,任何不必要的请求正在进行,获取实际页面本身花费了多少时间,等等。
之后,使用性能分析器分析应用程序。像ANTS Performance Profiler这样优秀的分析器将允许您查看不同方法的执行时间/命中计数,以及正在运行的数据库查询和它们花费的时间。ANTS的一个新版本(目前在EAP中)也会根据http请求对活动进行分组,这样你就可以看到特定的页面是否需要优化,或者是否被点击了太多次。
您还应该检查缓存是否按照您的预期工作,这样用户就不会不必要地重新请求页面。
你可能想在http://aspalliance.com/1533_ASPNET_Performance_Tips.7上读到一篇关于ASP.NET性能的好文章。
免责声明:我为红门公司工作,该公司制造蚂蚁。
https://stackoverflow.com/questions/11177386
复制相似问题