sanic和tornado的简单性能测试
操作系统 : CentOS7.3.1611_x64
Python 版本 : 3.6.8
tornado版本:6.0.2
sanic版本:19.9.0
CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 4核
之前一直使用tornado作为http相关python程序的框架,最近查资料发现新出的sanic性能很高,这里在同样硬件条件下使用ab进行简单的压测。
准备工作
安装apache ab工具:
yum -y install httpd-tools
压测命令:
ab -c 30 -n 100000 http://127.0.0.1:9093/
参数说明:
-c :模拟并发数
-n : 总请求数
对比测试
使用tornado实现的简单http服务器代码:
https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/tornadoTest1.py
使用sanic实现的简单http服务器代码:
https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/sanicTest1.py
tornado测试结果:
Server Software: TornadoServer/6.0.2
Server Hostname: 127.0.0.1
Server Port: 9093 Document Path: /
Document Length: 12 bytes Concurrency Level: 30
Time taken for tests: 82.282 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 20700000 bytes
HTML transferred: 1200000 bytes
Requests per second: 1215.33 [#/sec] (mean)
Time per request: 24.685 [ms] (mean)
Time per request: 0.823 [ms] (mean, across all concurrent requests)
Transfer rate: 245.68 [Kbytes/sec] received Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 8
Processing: 1 25 10.3 25 74
Waiting: 1 24 10.3 25 74
Total: 1 25 10.3 25 74 Percentage of the requests served within a certain time (ms)
50% 25
66% 30
75% 33
80% 34
90% 37
95% 39
98% 41
99% 42
100% 74 (longest request)
sanic测试结果:
Server Software:
Server Hostname: 127.0.0.1
Server Port: 9093 Document Path: /
Document Length: 12 bytes Concurrency Level: 30
Time taken for tests: 20.164 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 11100000 bytes
HTML transferred: 1200000 bytes
Requests per second: 4959.29 [#/sec] (mean)
Time per request: 6.049 [ms] (mean)
Time per request: 0.202 [ms] (mean, across all concurrent requests)
Transfer rate: 537.58 [Kbytes/sec] received Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 0.5 2 11
Processing: 1 4 1.5 4 38
Waiting: 0 4 1.4 3 37
Total: 1 6 1.5 6 41 Percentage of the requests served within a certain time (ms)
50% 6
66% 6
75% 7
80% 7
90% 7
95% 8
98% 9
99% 10
100% 41 (longest request)
从测试结果可以看到,开启两个进程情况下:
tornado的cps是 1215.33 ,平均响应时间是 24.685 ms
sanic的cps是 4959.29 ,平均响应时间是 6.049 ms
修改并发数后的测试数据如下:

测试结果对比如下:


从测试数据来看,sanic的cps比tornado高,平均响应时间方面,sanic也比tornado短。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2019/20191102_sanic和tornado的简单性能测试.rst
欢迎补充
sanic和tornado的简单性能测试的更多相关文章
- snaic和tornado的简单性能测试
操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 tornado版本:6.0.2 snaic版本:19.9.0 CPU : Intel(R) Core(TM) i ...
- Greenplum 简单性能测试与分析
如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理 ...
- Mininet实验 设置带宽之简单性能测试
原文:设置带宽之简单性能测试 这个实验主要还是说明通过python程序来设定Mininet中的链路带宽. 目的: Python脚本实现自定义拓扑 设置链路的带宽.延迟及丢包率 iperf测试主机间的带 ...
- .Net core2.0日志组件Log4net、Nlog简单性能测试
.Net core之Log4net.Nlog简单性能测试 比较log4net.nlog的文件写入性能(.netcore环境),涉及代码和配置如有不正确的地方,还请批评指正. 原创,转载请著名出处:ht ...
- JMeter简单性能测试(适合初学者)
利用JMeter进行Web测试 JMeter介绍 脚本录制 运行JMeter进行测试 JMeter主要组件介绍 参数化设置 动态数据关联 使用命令行运行JM ...
- 将Flask应用程序部署在nginx,tornado的简单方法
来自:http://www.xuebuyuan.com/618750.html 在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能 ...
- ClickHouse之简单性能测试
前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse,接下来进行简单的性能测试.测试数据来源于美国民用航班的数据,从1987年到2017年,有1.7亿条. 环境: centos ...
- LevelDB和ForestDB简单性能测试(含代码)
测试环境简单说明 Windows下测试 硬件环境如下: 处理器:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz 内 存:8GB 硬 盘:希捷 ST1000DM003 操 ...
- 框架之Tornado(简单介绍)
引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有 ...
- python web框架之Tornado的简单使用
python web框架有很多,比如常用的有django,flask等.今天主要介绍Tornado ,Tornado是一个用Python写的相对简单的.不设障碍的Web服务器架构,用以处理上万的同时的 ...
随机推荐
- C#利用折线图分析产品销售走势
图形界面 数据 查询效果 代码 private void button1_Click(object sender, EventArgs e) { G++; DrowFont(this.comboBox ...
- AI毕业设计生成器(基于AI大模型技术开发)
这是一个辅助生成计算机毕业设计的工具,可以自动完成毕业设计的源码.它基于几百个github上面开源的java和python项目,运用tengsorflow技术,训练出了AI大模型.基本实现了计算机毕业 ...
- spring-transaction源码分析(2)EnableTransactionManagement注解
概述(Java doc) 该注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理. @Configuration @Enabl ...
- Introduction to DFT
服务器使用 登陆服务器:输入账号密码 打开terminal,保证至少一个terminal窗口是打开的 取消Linux操作系统的屏幕保护 设置Linux EDA工具配置 // 自定义环境变量设置 gvi ...
- DC-实验
设置及综合流程
- 配置Maven项目时无法找到依赖
1.问题 在配置pom.xml文件时,关于plugin插件配置时,遭遇许多类似 未找到插件 'maven-clean-plugin:3.1.0' 未找到插件 'org.apache.maven.plu ...
- 【面试题精讲】你知道MySQL中有哪些隔离级别吗
有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准https://blog.zysicyj.top 首发博客地址 系列文章地址 脏读(Dirty Read)是指一个事务读取到了另一 ...
- [转帖]MySQL多版本并发控制机制(MVCC)-源码浅析
https://zhuanlan.zhihu.com/p/144682180 MySQL多版本并发控制机制(MVCC)-源码浅析 前言 作为一个数据库爱好者,自己动手写过简单的SQL解析器以及存储引擎 ...
- 银河麒麟在线升级新版本docker
银河麒麟在线升级新版本docker 卸载 学习来自: https://cloud.tencent.com/developer/article/1491742 yum remove docker \ d ...
- [转帖]Debian开启SSH
一.Debian开启SSH 参考链接: https://blog.csdn.net/zzpzheng/article/details/71170572 https://help.aliyun.com/ ...