前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tornado cherrypy bottle性能测试

tornado cherrypy bottle性能测试

作者头像
架构师刀哥
发布2018-03-20 17:17:38
1.1K0
发布2018-03-20 17:17:38
举报
文章被收录于专栏:坚毅的PHP

2011-11-25 今天做了个tornado cherrypy 和 bottle的对比 ab -n 10000 -c 1000 http://192.168.8.2:8889/ 1588req/s (tornado) ab -n 10000 -c 1000 http://192.168.8.2:9080/hello/shengp 323.35 req/s (bottle) ab -n 10000 -c 1000 http://192.168.8.2:8088/nqsdk/change 452.36 req/s (cherrypy) 发现跟别人测的3000+有很大差距 在CPyUG 里发帖 竟然被收录到啄木鸟社区了 很是激动 链接:http://wiki.woodpecker.org.cn/moin/MiscItems/2011-11-25 被收录的文章 现象 dean forever deanforwever2010@gmail.com 发件人当地时间: 发送时间 10:47 (GMT+08:00)。发送地当前时间:下午10:05。 ✆ 主题: [CPyUG] 测试tornado性能时 并发加到2000就开始出错? 双核 2.0Ghz debian系统 跑tornado的hello world: 切换行号显示 import tornado.httpserver import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") application = tornado.web.Application([(r"/", MainHandler),]) if __name__ == "__main__": http_server = tornado.httpserver.HTTPServer(application) http_server.listen(1081) tornado.ioloop.IOLoop.instance().start() ab -n 10000 -c 1000 http://192.168.8.2:8889/ 并发可达到1588req/s 执行 ab -n 10000 -c 2000 http://192.168.8.2:1081/ 出错: Traceback (most recent call last): File "/usr/local/lib/python2.6/site-packages/tornado-1.2.1-py2.6.egg/tornado/ioloop.py", line 269, in start File "/usr/local/lib/python2.6/site-packages/tornado-1.2.1-py2.6.egg/tornado/stack_context.py", line 173, in wrapped File "/usr/local/lib/python2.6/site-packages/tornado-1.2.1-py2.6.egg/tornado/httpserver.py", line 238, in _handle_events File "/usr/local/lib/python2.6/socket.py", line 195, in accept error: [Errno 24] Too many open files 在另一台8核 8G内存服务器上跑ab 性能也没有见提升,并发开到2000也出错: Traceback (most recent call last): File "/usr/local/python/lib/python2.6/site-packages/tornado-2.1.1-py2.6.egg/tornado/ioloop.py", line 309, in start File "/usr/local/python/lib/python2.6/site-packages/tornado-2.1.1-py2.6.egg/tornado/netutil.py", line 314, in accept_handler File "/usr/local/python/lib/python2.6/socket.py", line 195, in accept error: [Errno 24] Too many open files 求指点,是否我的测试方法哪里不对,怎么看不到别的大牛写的 3000+的并发效果? 内置支持 WooParadog guohaochuan@gmail.com 发件人当地时间: 发送时间 20:20 (GMT+08:00)。发送地当前时间:下午10:08。 ✆ 翻了一下, 发现tornado自带了并行的东西...用法如下..在我的机器上(Dell i5/4G)能跑到5790.15 [#/sec] (mean) 不用的话在2726.08 [#/sec] (mean).. 嗯, 笔记本假四核... 切换行号显示 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' tor.py Author: WooParadog Email: Guohaochuan@gmail.com Created on 2011-11-25 ''' import tornado import tornado.process import tornado.web from tornado import httpserver from tornado import ioloop from tornado.web import RequestHandler class non(RequestHandler): def get(self): """docstring for get""" self.write("hello") def main(): """docstring for main""" sokets = tornado.netutil.bind_sockets(8080) tornado.process.fork_processes(0) application = tornado.web.Application([ ('',non)]) http_server = httpserver.HTTPServer(application) http_server.add_sockets(sokets) ioloop.IOLoop.instance().start() if __name__ == '__main__': main() 大牛你这个最管用了!  ab -n 10000 -c 1000 http://192.168.0.36:1081/ ... Requests per second: 8416.98 [#/sec] (mean) 并发开到5000 都还能达到 5000req/s 看来真是自己用的不对 呵呵 飞龙分析 Felinx Lee felinx.lee@gmail.com 发件人当地时间: 发送时间 11:33 (GMT+08:00)。发送地当前时间:下午10:10。 ✆ 这个是系统允许的fd限制所制,可以参考下这个 http://thedaneshproject.com/posts/how-to-increase-total-file-descriptors-count-on-linux/ 每个进程的fd limit有限制,参考下: http://stackoverflow.com/questions/2569620/socket-accept-error-24-to-many-open-files 用了fork其实是根据多核来跑多个进程,每个进程的限制还没有达到,所以没出错。但tornado的老大们是不推荐用fork的。 最终按照 WooParadog 的方法,最好并发达到了1W+ (在8核系统上) 飞龙的推荐文章我照着做了一遍 发现木有效果 不知道是不是机器问题。。。 跑的有问题 404错误了 http://192.168.0.36:1081 去掉斜杠跑 没有出错 : Requests per second: 11187.92 [#/sec] (mean)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档