我们有一个普通的ASP.NET应用程序(ASP.NET web窗体、实体框架、Server 2005),没有从代码中显式多线程。它已经部署在滞胀环境( 2008 R2 64位,CPU - Intel Xeon E5507 @ 2.27 GHz 2.34 GHz,RAM-7.5GB)上。这个环境由一个web、一个数据库和一个报告服务器组成,每个服务器都是云中的一个单独的实例(Amazon )。在测试并发性时,观察如下:
1用户- CPU使用率~25%,响应时间2-4秒2用户- CPU使用率40-50%,响应时间3-6秒4用户- CPU使用率60-80%,响应时间4-8秒8用户- CPU使用率80-100%,响应时间4-10秒。
我的问题是:
。
从上面的观察来看,当并发用户计数为10时,CPU就会被耗尽。CPU不应该在不大幅增加响应时间的情况下无缝地处理更多并发用户吗?在理想的情况下,如果是一个基本的ASP.NET应用程序,一个CPU可以处理多少并发用户?
如果在上面的问题中是
PS: IIS设置(即在machine.config中),这些设置已经更改:
maxWorkerThreads = 100
MinWorkerThreads = 50
maxIOThreads = 100
minIOThreads = 50
minFreeThreads = 176
maxConnections = 100发布于 2011-11-04 16:17:23
高CPU使用率可能是由多种原因造成的。要了解发生了什么,最简单的方法是使用分析工具:
蚂蚁记忆分析器:
http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
蚂蚁性能分析器:
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
他们是非常负担得起,但你应该能够工作不受限制的试用版本。这些工具在识别瓶颈和内存泄漏方面做得非常出色。
https://stackoverflow.com/questions/8010224
复制相似问题