- 浏览: 463877 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
kc_hxd_jp:
博主问个问题,这个篇幅下的python代码无法达到应有的作用, ...
zeroMQ初体验-14.命名机制 进阶 -
kobe1029:
Map<String, Object> args ...
rabbitmq 队列长度预设的曲线方案 -
Sasoritattoo:
LZ,这都13年了,抽空把这篇文章的下文给表完了吧,这一口气喘 ...
nginx + gridfs + mongodb 大事记(残) -
3GQQ2012:
引用前文已经说过,XREP其实用以平衡负载,所以这里由它对请求 ...
zeroMQ初体验-15.应答模式进阶(一)-数据的封装 -
iyuan:
ustclz 写道图片怎么显示不了了。。我这看是可以显示的。不 ...
zeroMQ初体验-1.简介及C/S模式
一直都是用的web.py,因为简单。
也用gevent,因为效率。
最近要布置一个api,直接web.py,写的是快,速度似乎有些跟不上了
加上了gevent,对一些可能出现等待的东东封装一下,速度看似有好转:
记得看过一个神帖,关于各种python HttpServer的测评,干脆也简单来个,下面的是纯gevent的:
当然,结果比较着看还不错,不过一如既往的与测评贴差的很远
好吧,上通常用的配置,fast-cgi起5个web.py版的,由nginx接上,结果与单gevent差不多:
对照着gevent似乎也比较可以接受,如果没有丢包的话。好吧,如此严重的丢包有些不太让人接受。
考虑到url,访问权限之类的问题,nginx是必须的。
突然有点厌烦这一堆测试数据,特别是没有成就感的状态下。不过本着有始有终的原则,最后一组也做了吧,nginx proxy gevent,起来两个独立gevent,由nginx 飘着,
速度时快时慢,不过倒是没丢数据,rps也在400+。
综合考虑,采用 nginx 代理 gevent模式,速度可以接受,稳定也是关键啊。
不过 web.py + gevent.queue + fcgi + nginx也是不错的选择,不过这个适用于非及时性的server
有点凌乱了,就这么着吧
也用gevent,因为效率。
最近要布置一个api,直接web.py,写的是快,速度似乎有些跟不上了
C:\Users\iyuan>ab -n 10000 -c 3 http://172.16.0.98:8080/?t=32424&x=982/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking 172.16.0.98 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Finished 10000 requests Server Software: CherryPy/3.1.2 Server Hostname: 172.16.0.98 Server Port: 8080 Document Path: /?t=32424 Document Length: 4 bytes Concurrency Level: 3 Time taken for tests: 26.884000 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 960000 bytes HTML transferred: 40000 bytes Requests per second: 371.97 [#/sec] (mean) Time per request: 8.065 [ms] (mean) Time per request: 2.688 [ms] (mean, across all concurrent requests) Transfer rate: 34.85 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 1.9 2 38 Processing: 2 5 3.7 4 42 Waiting: 1 4 3.3 3 42 Total: 3 7 4.9 5 49 Percentage of the requests served within a certain time (ms) 50% 5 66% 7 75% 10 80% 11 90% 14 95% 18 98% 22 99% 24 100% 49 (longest request)
加上了gevent,对一些可能出现等待的东东封装一下,速度看似有好转:
C:\Users\iyuan>ab -n 10000 -c 3 http://172.16.0.98:8080/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking 172.16.0.98 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Finished 10000 requests Server Software: gevent/0.13 Server Hostname: 172.16.0.98 Server Port: 8080 Document Path: / Document Length: 4 bytes Concurrency Level: 3 Time taken for tests: 23.223000 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 1380000 bytes HTML transferred: 40000 bytes Requests per second: 430.61 [#/sec] (mean) Time per request: 6.967 [ms] (mean) Time per request: 2.322 [ms] (mean, across all concurrent requests) Transfer rate: 58.00 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.8 1 15 Processing: 2 5 1.6 6 22 Waiting: 2 5 1.5 5 22 Total: 3 6 1.8 7 26 Percentage of the requests served within a certain time (ms) 50% 7 66% 7 75% 7 80% 7 90% 8 95% 9 98% 12 99% 14 100% 26 (longest request)
记得看过一个神帖,关于各种python HttpServer的测评,干脆也简单来个,下面的是纯gevent的:
C:\Users\iyuan>ab -n 10000 -c 3 http://172.16.0.98:8080/?t=32424&x=982/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking 172.16.0.98 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Finished 10000 requests Server Software: gevent/0.13 Server Hostname: 172.16.0.98 Server Port: 8080 Document Path: /?t=32424 Document Length: 0 bytes Concurrency Level: 3 Time taken for tests: 14.688000 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 1140000 bytes HTML transferred: 0 bytes Requests per second: 680.83 [#/sec] (mean) Time per request: 4.406 [ms] (mean) Time per request: 1.469 [ms] (mean, across all concurrent requests) Transfer rate: 75.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.5 1 15 Processing: 1 3 0.8 3 17 Waiting: 1 2 1.0 2 17 Total: 2 4 0.9 4 21 Percentage of the requests served within a certain time (ms) 50% 4 66% 4 75% 5 80% 5 90% 5 95% 5 98% 6 99% 7 100% 21 (longest request)
当然,结果比较着看还不错,不过一如既往的与测评贴差的很远
好吧,上通常用的配置,fast-cgi起5个web.py版的,由nginx接上,结果与单gevent差不多:
C:\Users\iyuan>ab -n 10000 -c 3 http://webrpc-test.ex-sandbox.com/?t=32424&x=982 This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking webrpc-test.ex-sandbox.com (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Finished 10000 requests Server Software: nginx/0.6.37 Server Hostname: webrpc-test.ex-sandbox.com Server Port: 80 Document Path: /?t=32424 Document Length: 4 bytes Concurrency Level: 3 Time taken for tests: 15.892000 seconds Complete requests: 10000 Failed requests: 361 (Connect: 0, Length: 361, Exceptions: 0) Write errors: 0 Non-2xx responses: 361 Total transferred: 1032021 bytes HTML transferred: 46137 bytes Requests per second: 629.25 [#/sec] (mean) Time per request: 4.768 [ms] (mean) Time per request: 1.589 [ms] (mean, across all concurrent requests) Transfer rate: 63.37 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.7 1 11 Processing: 1 3 1.8 3 137 Waiting: 1 2 1.9 3 137 Total: 2 4 2.0 4 139 Percentage of the requests served within a certain time (ms) 50% 4 66% 5 75% 5 80% 5 90% 5 95% 7 98% 10 99% 11 100% 139 (longest request)
对照着gevent似乎也比较可以接受,如果没有丢包的话。好吧,如此严重的丢包有些不太让人接受。
考虑到url,访问权限之类的问题,nginx是必须的。
突然有点厌烦这一堆测试数据,特别是没有成就感的状态下。不过本着有始有终的原则,最后一组也做了吧,nginx proxy gevent,起来两个独立gevent,由nginx 飘着,
速度时快时慢,不过倒是没丢数据,rps也在400+。
综合考虑,采用 nginx 代理 gevent模式,速度可以接受,稳定也是关键啊。
不过 web.py + gevent.queue + fcgi + nginx也是不错的选择,不过这个适用于非及时性的server
有点凌乱了,就这么着吧
发表评论
-
django 非抽象model的继承
2017-01-12 22:57 993遇到一个很“拧巴”的情况,需要在django下继承一个mode ... -
如何通过python发送日历邮件(ics)
2016-09-14 17:38 3034email的rfc:https://tools.ietf.or ... -
通过reidis管理定时任务
2016-09-14 14:31 993主要应用场景为:有变动需求的一次性定时任务。 通过redis ... -
python连接SQL AnyWhere(备忘)
2016-08-22 11:48 13061.安装python库:sqlanydb 2.在本地安装SQ ... -
python 源码打包data_files参数失效(备忘)
2014-11-10 18:03 2166由于打包一个Django app 需要将一些html也放入包中 ... -
sqlalchemy TypeError(备忘)
2014-01-16 16:55 1442症状: 通过sqlalchemy api调用报错: sqla ... -
python-ldap 为ad帐号解锁
2013-05-28 10:25 4544话不多说,直接代码: l = ldap.initializ ... -
从mongodb读取csv解决方案
2013-05-21 19:41 4249用Python中的csv模块读.csv文件还是蛮赞的,特别是D ... -
django:数据库修改工具South的正确使用方式(转)
2013-05-09 17:08 1368本文转自(http://www.cnblogs.com/yan ... -
ajax跨域访问(备忘)
2013-03-22 15:00 1216老生常谈的问题,存此备忘: html5解决方案(老方案也有) ... -
python urllib2的301/302重定向处理
2012-12-18 16:52 18170用惯了requests,python的标准库倒是很久不碰。以致 ... -
python小数精度的备忘
2012-06-21 15:35 2493python中有内置函数:round用来限定小数位数 ro ... -
uwsgi+gevent+web.py的进阶
2012-06-12 00:26 4097之前有关于这个构造的入门备忘,详情猛击这里 目前的uwsgi ... -
python的嵌套引用
2012-06-11 23:54 2354最近在整合几个同伴写的模块,意欲以最小的代价直接引用再打包发出 ... -
关于uwsgi+gevent+web.py的备忘
2012-02-21 14:16 5483简单入门: uwsgi:nginx般的优雅控制 gevent: ... -
python二进制转字符串
2011-11-01 15:45 10205同事问了个关于二进制数与字符串间转换的问题,这里试着用pyth ... -
关于python和rabbitmq的那点事儿
2011-10-19 14:15 7915rabbitmq是一个消息中间件,在之前的zmq介绍中有略带提 ... -
cython初涉
2011-04-20 19:04 1720话不多说,Hello World: #hello.pyx ... -
pymongo 模糊匹配查询
2011-03-17 18:01 1954在mongo中做sql的like语句是很容易的: selec ... -
gevent 任务的持续追加和执行(续·真)
2011-01-26 17:04 3398之前写过一篇通过队列、池来持续追加任务的方式:http://i ...
相关推荐
在centos8操作系统下部署python+flask+uwsgi+gevent+nginx服务,轻量级微信小程序后端服务,或者VUE后端服务部署。
python开发,基于gunicorn+gevent+restful框架,标准的高并发flask项目,可用于高并发应用开发模板 flask高并发标准项目框架 启动服务: gunicorn -c gun.py manage:app 新增接口方式: 1.app/_apis/firstApi....
基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip
Gevent 部署 这个库在 Django 的manage.py添加了一个简单的钩子,以便能够启动 gevent 的 WSGI 服务器来为 Django 项目提供服务。安装通过pip将该库安装到您的 Python 安装中: pip install django-gevent-deploy...
gevent安装包,适用于使用协程的python代码,具体代码协程demo可看python栏目的协程
python协程gevent编写的异步web服务器,由python和第三方包gevent,socket编写
07-使用gevent来实现http服务器.py
部署python flask项目到云服务器 这是我第一次写博客,写的不好请多多见谅。 操作环境是ubuntu16.04,使用xshell和xftp工具,记得进入root用户,如果没有需要设置,怎么设置后面更新。 Python 3.5.2(自带的,需要...
h5 手机端一个收款页面、 后台管理: auto_flask_v1 后端 my-vue-auto 后台前端
资源分类:Python库 所属语言:Python 资源全名:gevent-20.6.2-cp36-cp36m-manylinux2010_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Python合法网页爬虫工具项目分享 内容概览: 这个分享包涵了我开发的Python爬虫工具项目,主要用于合法爬取某些网页信息。以下是主要内容: 源代码:包括Python代码和相关脚本。这些代码展示了如何使用Python进行...
带Flask的Socketio演示和教程有关技术细节,请访问 这个项目是一个关于如何在Python / Flash中使用socketio的演示。 它旨在保持超基础性,因为它是演示/教程,而不是出于生产目的。 如果时间允许,应该在某天发布...
安装requests,chardet,web.py,gevent psutil: pip install requests chardet web.py sqlalchemy gevent psutil4.安装pywin32,scrapy,bs4,pillow,opencv-python,pymysql:pip install pywin32 scrapy
资源分类:Python库 所属语言:Python 资源全名:gevent-21.1.2-cp38-cp38-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
gevent-21.8.0-cp39-cp39-win32
gevent gz包 Gevent是一个基于greenlet的Python的并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效。
Win7 (64)+ VS2010 + Python2.7.9 编译好的gevent 0.13.8模块,放到Python目录Lib\site-packages下可以直接使用
离线安装包,测试可用。使用 pip install [完整包名] 进行安装
python gevent_echo.py python gevent_counter.py 测试 AB 正常回声: ab -n 1000 -c 10 'http://localhost:8080/' 带有命令行输出的正常回显(默认禁用): ab -n 1000 -c 10 'http://localhost:8080/?print=1' ...
KeepLearning 之前学习一些东西的代码集合, 一般跟某份教程或者某本书一致. 代码+详细注释, 可执行 Python learn_gevent learn_tornado Golang learn_golang Ruby learn_ruby C learn_c