谕猛子

随心飞翔 http://weibo.com/busoro

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
经过2个星期的开发,我的muyu::asio网络库终于初步成形了。
虽然最近这几天的调优没有取得我想要的效果,但也可以轻松一点了。

今天一边在看IOCP的资料,一边在公司的测试环境里做了测试,

对比 muyu::asio,boost::asio,muduo,和Nginx。
用muyu::asio做了简单的http server用于测试,代码类似boost::asio的http server例程
boost::asio的测试代码是官方的例程http server 2 和 http server 3。(做了简单修改,不读文件,直接取内存数据)
muduo的测试例程是其自带的http server,分别用了muduo 0.2.9版 和 muduo 0.3.4版
Nginx的版本是1.0.14,  配置是:worker_processes  5; use epoll;worker_connections  1024; 
 
测试工具:webbench-1.5  
测试命令: ./webbench -c 500 -t 300 http://192.168.8.105:xxxx/
 
测试结果如下:
muyu::asio  http server 1: 8个io_service, 每个io_service配1个工作线程
第一次测试:
Speed=996475 pages/min, 2541009 bytes/sec.
Requests: 4982372 susceed, 3 failed.
第二次测试:
Speed=997619 pages/min, 2543928 bytes/sec.
Requests: 4988094 susceed, 1 failed.
第三次测试:
Speed=988426 pages/min, 2520488 bytes/sec.
Requests: 4942134 susceed, 0 failed.
第四次测试:
Speed=1009362 pages/min, 2573870 bytes/sec.
Requests: 5046805 susceed, 6 failed.
 
muyu::asio  http server 2: 8个io_service, 每个io_service配300个工作线程
第一次测试:
Speed=919767 pages/min, 2345405 bytes/sec.
Requests: 4598834 susceed, 4 failed.
第二次测试:
Speed=935779 pages/min, 2386232 bytes/sec.
Requests: 4678891 susceed, 6 failed.
第三次测试:
Speed=916277 pages/min, 2336505 bytes/sec.
Requests: 4581383 susceed, 6 failed.
第四次测试:
Speed=949439 pages/min, 2421061 bytes/sec.
Requests: 4747183 susceed, 13 failed.
 
boost::asio 例程http server 2:one io_service per CPU,8个io_service,每个io_service一个工作线程
第一次测试:
Speed=836536 pages/min, 1965858 bytes/sec.
Requests: 4182678 susceed, 4 failed.
第二次测试:
Speed=834559 pages/min, 1961211 bytes/sec.
Requests: 4172791 susceed, 5 failed.
第三次测试:
Speed=833176 pages/min, 1957962 bytes/sec.
Requests: 4165879 susceed, 2 failed.
第四次测试:
Speed=842093 pages/min, 1978916 bytes/sec.
Requests: 4210463 susceed, 2 failed.
 
boost::asio 例程http server 3:1个io_service, 线程池有2000个线程
第一次测试:
Speed=736949 pages/min, 1731823 bytes/sec.
Requests: 3684734 susceed, 11 failed.
第二次测试:
Speed=745930 pages/min, 1752929 bytes/sec.
Requests: 3729638 susceed, 15 failed.
第三次测试:
Speed=744610 pages/min, 1749827 bytes/sec.
Requests: 3723038 susceed, 15 failed.
第四次测试:
Speed=745392 pages/min, 1751667 bytes/sec.
Requests: 3726951 susceed, 9 failed.
 
muduo 0.3.4版 http server:8个线程
第一次测试:
Speed=821217 pages/min, 2627890 bytes/sec.
Requests: 4106081 susceed, 7 failed.
第二次测试:
Speed=805267 pages/min, 2576846 bytes/sec.
Requests: 4026322 susceed, 17 failed.
第三次测试:
Speed=793357 pages/min, 2538725 bytes/sec.
Requests: 3966760 susceed, 28 failed.
第四次测试:
Speed=786347 pages/min, 2516284 bytes/sec.
Requests: 3931697 susceed, 41 failed.
 
muduo 0.2.9版 http server:8个线程
第一次测试:
Speed=734277 pages/min, 342661 bytes/sec.
Requests: 3671372 susceed, 17 failed.
第二次测试:
Speed=715121 pages/min, 333722 bytes/sec.
Requests: 3575597 susceed, 11 failed.
第三次测试:
Speed=734941 pages/min, 342971 bytes/sec.
Requests: 3674695 susceed, 10 failed.
第四次测试:
Speed=746123 pages/min, 348189 bytes/sec.
Requests: 3730602 susceed, 13 failed.
 
Nginx 1.0.14版
第一次测试:
Speed=801993 pages/min, 4838681 bytes/sec.
Requests: 4009957 susceed, 9 failed.
第二次测试:
Speed=809194 pages/min, 4882131 bytes/sec.
Requests: 4045967 susceed, 5 failed.
第三次测试:
Speed=794093 pages/min, 4791025 bytes/sec.
Requests: 3970463 susceed, 6 failed.
第四次测试:
Speed=805570 pages/min, 4860269 bytes/sec.
Requests: 4027848 susceed, 5 failed.
 
从测试结果看,我的muyu::asio胜过boost::asio;muduo网络库对短连接的支持有所改善。
下周开始开发muyu::asio的IOCP部分。
posted on 2012-03-22 19:10  谕猛子  阅读(950)  评论(0编辑  收藏  举报