特别说明,如标题说的,如下测试并非绝对客观,仅仅是本人实际生产环境应用中的测试,给大家做个参考 O(∩_∩)O~
测试服务器:
1) Win 2012 DC 4核 2GB,.Net 4.0,IIS8
2) Ubuntu 12.04.2 LTS 64位 4核 2GB,Mono 3.0.11,Jexus 5.3.1 开2 线程
3) 单台HAProxy 1.4.23(Ubuntu 12.04.2 LTS 64位 4核 512MB)做负载均衡,
两台Ubuntu 12.04.2 LTS 64位 4核 1GB,Mono 3.0.11,Jexus 5.3.1 开2 线程【这也是我们准备使用的实际生产环境 O(∩_∩)O~】
【注:以上测试服务器全是在一台服务器上使用Hyper-v 2012虚拟出来的VPS】
测试工具:webbench 1.5
测试内容:
1)静态页面
一个好简单的页面 \(^o^)/~
2)动态页面
里面只有一个输出图片流的Webapi (基于MVC4),数据流完全来自后面两台redis,所以是纯内存运算,撇开了磁盘io性能对测试的影响;同时所有测试代码都直接在Win下使用.Net库编译,没有特别针对Mono进行重新编译,因为实际生产环境就是用VS开发,Linux下部署,做到部署开发双赢 O(∩_∩)O~
测试结果:
Win 2012 DC 4核 2GB,.Net 4.0,IIS8
静态网页:
webbench -c 2000 -t 60 http://xxx.../Test.html
第一轮:
Speed=988904 pages/min, 6954750 bytes/sec.
Requests: 988830 susceed, 74 failed.
第二轮:
Speed=919040 pages/min, 6463085 bytes/sec.
Requests: 918922 susceed, 118 failed.
第三轮:
Speed=950179 pages/min, 6682743 bytes/sec.
Requests: 950154 susceed, 25 failed.
动态页面:
webbench -c 2000 -t 60 http://xxx.../api/imageapi/jpg/404
第一轮:
Speed=86178 pages/min, -16884928 bytes/sec.
Requests: 86178 susceed, 0 failed.
第二轮:
Speed=70078 pages/min, -25869144 bytes/sec.
Requests: 70078 susceed, 0 failed.
第三轮:
Speed=86589 pages/min, -15101846 bytes/sec.
Requests: 86589 susceed, 0 failed.
Ubuntu 12.04.2 LTS 64位 4核 2GB,Mono 3.0.11,Jexus 5.3.1 开2 线程
静态网页:
webbench -c 2000 -t 60 http://xxx.../Test.html
第一轮:
Speed=1071175 pages/min, 7210827 bytes/sec.
Requests: 1070916 susceed, 259 failed.
第二轮:
Speed=916569 pages/min, 6171551 bytes/sec.
Requests: 916568 susceed, 1 failed.
第三轮:
Speed=1278075 pages/min, 8605698 bytes/sec.
Requests: 1278075 susceed, 0 failed.
动态页面:
webbench -c 2000 -t 60 http://xxx.../api/imageapi/jpg/404
第一轮:
Speed=30748 pages/min, 19972172 bytes/sec.
Requests: 30748 susceed, 0 failed.
第二轮:
Speed=55311 pages/min, 33876640 bytes/sec.
Requests: 55184 susceed, 127 failed.
第三轮:
Speed=50942 pages/min, 33090642 bytes/sec.
Requests: 50942 susceed, 0 failed.
【注:测试期间,jexus有一次出现cpu 100%的无响应状态,restart后,就暂时重现不出来,所以暂不知道是什么原因 ╮(╯_╰)╭】
单台HAProxy 1.4.23(Ubuntu 12.04.2 LTS 64位 4核 512MB)做负载均衡
两台Ubuntu 12.04.2 LTS 64位 4核 1GB,Mono 3.0.11,Jexus 5.3.1 开2 线程
静态网页:
webbench -c 2000 -t 60 http://xxx.../Test.html
第一轮:
Speed=409062 pages/min, 2754351 bytes/sec.
Requests: 409062 susceed, 0 failed.
第二轮:
Speed=411590 pages/min, 2769466 bytes/sec.
Requests: 411590 susceed, 0 failed.
第三轮:
Speed=408758 pages/min, 2752304 bytes/sec.
Requests: 408758 susceed, 0 failed.
动态页面:
webbench -c 2000 -t 60 http://xxx.../api/imageapi/jpg/404
第一轮:
Speed=85647 pages/min, -16004347 bytes/sec.
Requests: 85647 susceed, 0 failed.
第二轮:
Speed=83603 pages/min, -17327404 bytes/sec.
Requests: 83603 susceed, 0 failed.
第三轮:
Speed=77596 pages/min, -21411556 bytes/sec.
Requests: 77596 susceed, 0 failed.
总结:静态输出方面,Jexus的性能不比IIS8差,甚至更好,动态解析方面是差一点(当中本身就有mono性能不及.net的关系,不过也差距不是很大;也有我冇优化使用Jexus的原因,Jexus最大线程可以开4个,我只使用了2个,也冇具体优化Linux配置;还有我负载均衡优化的不足,小弟我配置负载均衡还是初哥),但应用在生产环境完全够用,稳定性也很不错(虽然测试期间有宕机的情况,仅此一次,也重现不了,但毕竟是出现过一次,日后随版本更新,更多用户使用反馈优化,必然会更加稳定),加上使用相同的配置,组成群集的话,性能上已经比同配置单台IIS8差不多,高低难分,而且更稳定,实际生产应用还是很值得信赖 \(^o^)/~。
结语:非常感谢 宇内流云 带给我们这样一个高性能的服务器!!!为廉价的部署方案开辟了一条光明大道!!!非常感谢!!!
Jexus官网:http://www.linuxdot.net/