请教一下,创建一个默认mvc4网站,没有添加/修改任何代码,用25个用户并发测试,cpu就高达50左右是怎么回事?
而在views目录外面新添加一个hmtl页面,同样并发测试,cpu正常。
而测试asp.net网站,同样并发测试cpu 15%左右,mvc怎么比asp.net高出这么多。
说明你的 CPU 太慢了嘛。
没事,是你的方法不对
就是mvc默认的例子,什么都没有修改和添加
@iso1osi: 是说你测试的方法不对.你是怎么用25个用户并发测试的?
就用 Visual Studio 负载测试,并发用户25个用户,思考时间设置为0。
@iso1osi: 你是在电脑上测试本地的网站吗?
一台测试机,在本机运行负载测试
@iso1osi: 请求是每秒钟一次,还是不停的发?
不停的发
@iso1osi: 一般说性能至少要说1秒内能处理多少请求,而不是25个线程不停的发请求.
我不太会解释.你这样的行为就相当于在服务器上while(true)了.然后嫌弃服务器卡
mvc是异步执行,webform页面是同步执行。
在执行耗时操作的时候,异步请求处理,提升了服务器整体的吞吐能力,处理速度要快,当然耗cpu。
mvc是异步执行,webform页面是同步执行。 这个还是头一回听到... 请解释 ,谢谢
@objectboy: Asp.Net管道中,ProcessRequest事件中执行 mvc的action(异步) or webform的page_load(同步).
@objectboy: 再一个,你到底测试的是html页面还是aspx页面,html静态页面直接返回html代码,就不用到CPU去处理什么。
人家都是每秒钟访问次数,你却不停跑然后看CPU占有率.
在你的测试用例下,CPU占有率越高越好,因为证明CPU真正的在处理请求了,而不是在等待IO.(MVC默认异步的,所以CPU的利用率会好点),你可以测试一下每分钟处理请求次数.
今天我也遇到这个问题。
是nopCommerce的样例。
怎么解释?
就是公司内部的不到100人来访问这个网站,没做什么压力测试之类的。