- 浏览: 471941 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1084遇到一个很“拧巴”的情况,需要在django下继承一个mode ... -
如何通过python发送日历邮件(ics)
2016-09-14 17:38 3140email的rfc:https://tools.ietf.or ... -
通过reidis管理定时任务
2016-09-14 14:31 1076主要应用场景为:有变动需求的一次性定时任务。 通过redis ... -
python连接SQL AnyWhere(备忘)
2016-08-22 11:48 13791.安装python库:sqlanydb 2.在本地安装SQ ... -
python 源码打包data_files参数失效(备忘)
2014-11-10 18:03 2245由于打包一个Django app 需要将一些html也放入包中 ... -
sqlalchemy TypeError(备忘)
2014-01-16 16:55 1517症状: 通过sqlalchemy api调用报错: sqla ... -
python-ldap 为ad帐号解锁
2013-05-28 10:25 4625话不多说,直接代码: l = ldap.initializ ... -
从mongodb读取csv解决方案
2013-05-21 19:41 4299用Python中的csv模块读.csv文件还是蛮赞的,特别是D ... -
django:数据库修改工具South的正确使用方式(转)
2013-05-09 17:08 1412本文转自(http://www.cnblogs.com/yan ... -
ajax跨域访问(备忘)
2013-03-22 15:00 1262老生常谈的问题,存此备忘: html5解决方案(老方案也有) ... -
python urllib2的301/302重定向处理
2012-12-18 16:52 18243用惯了requests,python的标准库倒是很久不碰。以致 ... -
python小数精度的备忘
2012-06-21 15:35 2560python中有内置函数:round用来限定小数位数 ro ... -
uwsgi+gevent+web.py的进阶
2012-06-12 00:26 4176之前有关于这个构造的入门备忘,详情猛击这里 目前的uwsgi ... -
python的嵌套引用
2012-06-11 23:54 2408最近在整合几个同伴写的模块,意欲以最小的代价直接引用再打包发出 ... -
关于uwsgi+gevent+web.py的备忘
2012-02-21 14:16 5536简单入门: uwsgi:nginx般的优雅控制 gevent: ... -
python二进制转字符串
2011-11-01 15:45 10290同事问了个关于二进制数与字符串间转换的问题,这里试着用pyth ... -
关于python和rabbitmq的那点事儿
2011-10-19 14:15 7964rabbitmq是一个消息中间件,在之前的zmq介绍中有略带提 ... -
cython初涉
2011-04-20 19:04 1756话不多说,Hello World: #hello.pyx ... -
pymongo 模糊匹配查询
2011-03-17 18:01 1993在mongo中做sql的like语句是很容易的: selec ... -
gevent 任务的持续追加和执行(续·真)
2011-01-26 17:04 3455之前写过一篇通过队列、池来持续追加任务的方式:http://i ...
相关推荐
python开发,基于gunicorn+gevent+restful框架,标准的高并发flask项目,可用于高并发应用开发模板 flask高并发标准项目框架 启动服务: gunicorn -c gun.py manage:app 新增接口方式: 1.app/_apis/firstApi....
总的来说,这个部署流程涉及到了用户管理、Python环境搭建、Web服务组件(uwsgi、gevent)、反向代理(nginx)以及安全配置等多个方面。通过这样的部署,可以构建一个稳定、高效的Python Flask服务,适用于轻量级的...
基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip
使用 python(flask + gevent + apscheduler) + redis 构建的实时聊天使用 python(flask / gevent / apscheduler) + redis 构建的实时聊天室基本架构截屏安装cd /路径/到/源python 引导.py垃圾箱/建造确保 redis-...
《Python中的Gevent:协程实现与应用》 在Python编程中,Gevent是一个高效的并发库,它基于Greenlet,并且提供了对协程的支持。本文将深入探讨Gevent的安装、工作原理以及如何在实际项目中应用协程。 1. **Gevent...
Gevent 部署 这个库在 Django 的manage.py添加了一个简单的钩子,以便能够启动 gevent 的 WSGI 服务器来为 Django 项目提供服务。安装通过pip将该库安装到您的 Python 安装中: pip install django-gevent-deploy...
部署python flask项目到云服务器 这是我第一次写博客,写的不好请多多见谅。 操作环境是ubuntu16.04,使用xshell和xftp工具,记得进入root用户,如果没有需要设置,怎么设置后面更新。 Python 3.5.2(自带的,需要...
python协程gevent编写的异步web服务器,由python和第三方包gevent,socket编写
07-使用gevent来实现http服务器.py
Flask是一个轻量级的Python Web服务器网关接口(WSGI)Web应用框架,适用于快速开发小型或中型项目。在后台管理部分,`auto_flask_v1`是基于Flask的后端服务,可能包含了处理微信支付接口调用、订单管理、用户验证等...
1. 使用说明.txt:这通常包含了关于如何安装和使用 gevent 的详细步骤,可能包括环境要求、安装命令、常见问题解答等内容。在实际操作时,应仔细阅读此文件以确保正确地部署和利用 gevent。 2. gevent-21.12.0-cp37-...
Python常用库,官方原版whl文件,文件下载到本地后, 直接终端 pip install xxx.whl 安装
Python合法网页爬虫工具项目分享 内容概览: 这个分享包涵了我开发的Python爬虫工具项目,主要用于合法爬取某些网页信息。以下是主要内容: 源代码:包括Python代码和相关脚本。这些代码展示了如何使用Python进行...
资源分类:Python库 所属语言:Python 资源全名:gevent-20.6.2-cp36-cp36m-manylinux2010_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
总之,Python的Gevent库和Odoo软件都是现代Web开发中的关键组件。Gevent通过greenlet和非阻塞I/O模型提高了并发性能,而Odoo作为一个全面的ERP解决方案,利用Gevent来优化其服务端性能,提供流畅的用户体验。对于想...
同时,`使用说明.txt`可能包含了关于如何安装和使用`gevent`的详细指导,包括可能遇到的问题和解决方案。对于初学者来说,仔细阅读这份文档能帮助更好地理解和使用`gevent`。 总之,`gevent`是Python中一个强大的...
带Flask的Socketio演示和教程有关技术细节,请访问 这个项目是一个关于如何在Python / Flash中使用socketio的演示。 它旨在保持超基础性,因为它是演示/教程,而不是出于生产目的。 如果时间允许,应该在某天发布...
压缩包内的文件名称列表中,"使用说明.txt"可能是关于如何安装和使用`gevent`的指南,包含了具体的操作步骤和注意事项。而`gevent-21.12.0-cp39-cp39-win_amd64.whl`文件就是我们要安装的主要对象。 安装`gevent`的...
安装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
《深入理解Gevent:Python并发框架的奥秘》 Gevent,这个名词在Python的世界里,无疑是一个引人注目的存在。它是一个基于greenlet的并发框架,旨在为Python开发者提供一套简单、高效的异步I/O处理方案。本文将深入...