版权归作者所有,任何形式转载请联系作者。
作者:petanne(来自豆瓣)
来源:https://www.douban.com/note/564871723/

======================================================================
测试环境:
======================================================================
双核虚拟机centos6.8,内存4G
python==2.7.11
gunicorn==19.6.0
django==1.9.2
tornado==4.3

======================================================================
gunicorn文档中支持的worker class:
======================================================================
sync 默认,使用同步阻塞的网络模型
eventlet - Requires eventlet >= 0.9.7
gevent - Requires gevent >= 0.13
tornado - Requires tornado >= 0.2
gthread - Python 2 requires the futures package to be installed
gaiohttp - Requires Python 3.4 and aiohttp >= 0.21.5

======================================================================
工具:
======================================================================
apache ab
如: ab -c 10 -n 100 -p post.txt http://www.test.com

======================================================================
测试参数:
======================================================================
gunicorn 进程数 -w 16 (与-w 8差距不大,测试机双核)
tornado 进程数16
post 1KB & HTTPResponse('hello world')
-c在保证Failed requests基本为0的前提下取最大值
使用-n为-c的10倍

======================================================================
guincorn运行django项目:
======================================================================
sync
-c 100 -n 1000 Requests per second 120
调整并发量结果仍然在120左右
CPU峰值80

eventlet
-c 50 -n 1000 Requests per second 230
Failed requests在180,即使-c 10,仍然有Failed requests
CPU峰值82

gevent
-c 500 -n 5000 Requests per second 230
Failed requests10以内,稳定
CPU峰值83

tornado
-c 200 -n 4000 Requests per second 250-350
Failed requests10左右,不稳定
但-c加到500,并发降为110,错误数100以内
CPU峰值85

可以看到gevent方式最稳定(推荐),eventlet错误数较多,tornado较高但不稳定

======================================================================
单独tornado项目,以多进程方式启动服务,不使用guincorn
======================================================================
-c 1000 -n 10000 Requests per second 1300-1500
CPU峰值80

======================================================================
以上均为真实测试数据,但由于测试环境及数据等原因,仅供参考
======================================================================

转载于:https://www.cnblogs.com/ExMan/p/10403827.html

django gunicorn 各worker class简单性能测试相关推荐

  1. javascript worker 多线程 简单示例

    javascript worker 多线程 简单示例 项目结构 主线程 index.html <!DOCTYPE html> <html lang="en"> ...

  2. python读取oracle数据库性能_用python对oracle进行简单性能测试

    一.概述 dba在工作中避不开的两个问题,sql使用绑定变量到底会有多少的性能提升?数据库的审计功能如果打开对数据库的性能会产生多大的影响?最近恰好都碰到了,索性做个实验. sql使用绑定变量对性能的 ...

  3. Mininet系列实验(五):Mininet设置带宽之简单性能测试

    Mininet系列实验(五):Mininet设置带宽之简单性能测试 1.实验目的 该实验通过Mininet学习python自定义拓扑实现,可在python脚本文件中设计任意想要的拓扑,简单方便,并通过 ...

  4. Django实现微信公众号简单自动回复

    在上篇博客阿里云部署django实现公网访问已经实现了了django在阿里云上的部署,接下来记录django实现微信公众号简单回复的开发过程,以方便日后查看 内容概要: (1)微信公众号声请 (2)微 ...

  5. python做性能测试框架_python常用web框架简单性能测试结果分享(包含dja

    测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动 ...

  6. ClickHouse之简单性能测试

    前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse,接下来进行简单的性能测试.测试数据来源于美国民用航班的数据,从1987年到2017年,有1.7亿条. 环境: centos ...

  7. Django中session和cookie简单的使用

    一.简单的理解 session和cookie是request下的两个对象,操作他们的值就是在操作字典,设置他们的属性就是调用方法. 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整 ...

  8. django之十一--开发一个简单的醉得意菜单和人均支付金额查询页面

    一.前言 针对搭伙吃饭的点菜,我们时常会从人数和人均金额去考虑一家餐厅的菜单,所以点菜对于大锅饭的伙伴也成了一门学问和难题,本篇文章巧妙的应用代码思想,将实际问题转化为代码问题,例如如下是一个醉得意的 ...

  9. Django框架简介-初级(简单留言板)

    Django框架(综合各方知识) 介绍Django和设计模式 CGI方式开发web MVC 设计模式 web各部分说明 主要内容 结构说明 必要步骤 简单体验留言板 进阶留言板:css和html分离, ...

最新文章

  1. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置
  2. 阐述Session加载实体对象的过程
  3. ThumbnailUtils的使用
  4. C#简介和异常类总结
  5. bootstraptable 加载完成回调函数_牛皮了!头一次见有大佬把「JavaScript中的回调函数」详解得如此清晰明了...
  6. input文本框的readonly和disabled属性区别
  7. php 单位食堂订餐,职工食堂微信订餐系统 单位饭卡消费系统
  8. 国科大计算机算法与分析——陈玉福 马菲菲
  9. 点击链接跳转到微信扫码二维码添加微信好友
  10. 阿里巴巴图库的使用教程
  11. 第三周项目4 穷举法
  12. frameworks/base/core/res/res/values/symbols.xml:3915: error: no definition for declared symbol解决办法
  13. android 聊天气泡背景图片,关于实现微信聊天气泡里显示图片
  14. CSR8675项目实战:BlueBrowsing蓝牙播放器
  15. 水仙花数 matlab,matlab向量运算解决水仙花数问题
  16. 学习笔记-----浅谈汇编指令CMP运行机制
  17. 我的世界java边境之地_我的世界:MC人迹罕至的6种“边境之地”,最后1种让人后背发凉!...
  18. 广州Java培训,疯狂Java如何?谈谈疯狂Java,谈谈李刚
  19. 哈工大2021秋机器学习期末试题
  20. PB反编译(Powerbuilder反编译)工具的优缺点对比总结

热门文章

  1. 【收藏】sonar-scanner扫描代码出错 SonarQube svn: E170001
  2. idea实用技巧完全教程
  3. 【网址收藏】k8s中helm方式安装postgresql及pgadmin
  4. Linux命令:dd、iostat、sar
  5. 限流算法——漏桶算法和令牌桶算法介绍
  6. Git 忽略提交 .gitignore模板
  7. windows杀死指定端口号
  8. MySQL ADDDATE(d,n) 计算起始日期 d 加上 n 天的日期
  9. 【软考-软件设计师】程序语言的基本概念
  10. centos 7.9密码改密钥登陆