tornado cherrypy bottle性能测试

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)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

day54_BOS项目_06

第一步:根据提供的 业务受理.pdm 文件生成建表文件 bos_qp.sql 第二步:由于业务受理.pdm 文件中有伪表,所以我们需要修改生成的建表文件,修改如...

932
来自专栏高性能服务器开发

+从零实现一款12306刷票软件1.4

这里还有个注意细节,就是通过POST请求发送的数据需要对一些符号做URL Encode,这个我在上一篇文章《从零实现一个http服务器》也详细做了介绍,还不清楚...

2212
来自专栏葡萄城控件技术团队

Url Rewrite 再说Url 重写

前几天看到园子里一篇关于 Url 重写的文章《获取ISAPI_Rewrite重写后的URL》 , URL-Rewrite 这项技术早已不是一项新技术了,这个话题...

5598
来自专栏移动端开发

iOS 测试三方 KIF 的那些事

一: KIF 三方库的配置       今天的广州天气还不错,原本想试试UI测试的,前几天也了解到很多公司都在用 KIF 这这三方框架!!今天也就试着做做,可就...

2306
来自专栏hbbliyong

WPF刷新界面之坎坷路

   项目需要一个硬件检测功能,需要用到界面刷新,刚开始想用个定时器,对检测过的硬设定时添加后刷新界面。 但是很遗憾,定时器并不能进行刷新。后台检测List数据...

3827
来自专栏iOS122-移动混合开发研究院

写给iOS小白的MVVM教程(一): 从MVC到MVVM之一个典型的MVC应用场景

前言 本着实践为主的原则,此系列文章不做过多的概念性的阐述和讨论;更多的代码和篇幅用来展示MVC和MVVC下的基础代码结构与具体实现,来展示各自优劣.这篇文章,...

3177
来自专栏GopherCoder

『No18: Go 实现世界杯后台管理系统』

趁着周末更新一期,上一期讲到 如何快速熟悉一个项目, 文章的最后讲到,最好的方法是借用相同的技术栈重新实现一个项目。

1671
来自专栏FreeBuf

腾讯御见捕获Flash 0day漏洞(CVE-2018-5002)野外攻击

腾讯御见威胁情报中心近日监控到一例使用Adobe Flash 0day漏洞(CVE-2018-5002)的APT攻击,攻击者疑通过即时聊天工具和邮箱等把恶意Ex...

1080
来自专栏Golang语言社区

阅读源代码的姿势:以 go-restful 为例

一般初学者确定一个方向,比如web 后端、前端等,会选择一门编程语言深入下去,比如后端java、python、go等。通过项目不断练习编程语言和编程思维,知道如...

1583
来自专栏安恒网络空间安全讲武堂

[HCTF] share write up

从http://share.2018.hctf.io/robots.txt中获取到题目部分源码

952

扫码关注云+社区

领取腾讯云代金券