snaic和tornado的简单性能测试
操作系统 : CentOS7.3.1611_x64
Python 版本 : 3.6.8
tornado版本:6.0.2
snaic版本:19.9.0
CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 4核
之前一直使用tornado作为http相关python程序的框架,最近查资料发现新出的snaic性能很高,这里在同样硬件条件下使用ab进行简单的压测。
准备工作
安装apache ab工具:
yum -y install httpd-tools
压测命令:
ab -c -n http://127.0.0.1:9093/
参数说明:
-c :模拟并发数
-n : 总请求数
对比测试
使用tornado实现的简单http服务器代码: https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/tornadoTest1.py
使用snaic实现的简单http服务器代码:https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/snaicTest1.py
tornado测试结果:
Server Software: TornadoServer/
Server Hostname: 127.0.0.1
Server Port:
Document Path: /
Document Length: bytes
Concurrency Level:
Time taken for tests: 82.282 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred: bytes
HTML transferred: 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:
Processing:
Waiting:
Total:
Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request)
snaic测试结果:
Server Software:
Server Hostname: 127.0.0.1
Server Port:
Document Path: /
Document Length: bytes
Concurrency Level:
Time taken for tests: 20.164 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred: bytes
HTML transferred: 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:
Processing:
Waiting:
Total:
Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request)
从测试结果可以看到,开启两个进程情况下:
tornado的cps是 1215.33 ,平均响应时间是 24.685 ms
snaic的cps是 4959.29 ,平均响应时间是 6.049 ms
修改并发数后的测试数据如下:

测试结果对比如下:


从测试数据来看,snaic的cps比tornado高,平均响应时间方面,snaic也比tornado短。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2019/20191102_snaic和tornado的简单性能测试.rst
欢迎补充
snaic和tornado的简单性能测试的更多相关文章
- 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服务器架构,用以处理上万的同时的 ...
随机推荐
- Linux 常用解压和压缩命令
.tar 解包 tar xvf filename.tar.tar 打包 tar cvf filename.tar dirname.gz 解压1 gunzip filename.gz.gz 解压2 gz ...
- 搭建Nodejs环境 创建Express应用
1. Nodejs Nodejs是一种服务器端js脚本运行环境: Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎 2. Express开发框架 极简的web框架,完全是由路 ...
- Kubernetes 系列(二):Deployment 扩容
(1)首先我们创建一个nginx的Deployment,采用官方的yaml: kubectl create -f https://kubernetes.io/docs/user-guide/nginx ...
- 夯实Java基础系列21:Java8新特性终极指南
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- cocos2d-x C++ 工程初探
经过较为繁琐的环境搭建后,我们终于运行出了一个helloworld窗口,可以正式上手cocos了 现在我们就从改代码开始玩起 窗口 我们之前讲到AppDelegate类是程序的入口,所以和窗口有关的设 ...
- Tomcat部署项目的三个方法
所需软件安装 要想在Tomcat中部署项目前提是先要搭建好Tomcat,搭建Tomcat就离不开以下软件包的安装配置,本次演示使用Linux平台 1.JDK软件包 JDK是一切java应用程序的基础, ...
- js对象参考手册 -戈多编程
今天来总结下常用的熟记的js api (一)JavaScript对象 (1)Array 对象属性:(3个) constructor lengh prototype 对象方法:(14个) contat( ...
- lnmp环境搭设
安装nginx============================ 1添加nginx的rpm信息 rpm -Uvh http://nginx.org/packages/centos/7/noarc ...
- 实体对象属性和值转为键值对Dictionary
实体对象转为Dictionary键值对 /// <summary> /// 实体转键值对 /// </summary> /// <typeparam name=" ...
- LeetCode 300. Longest Increasing Subsequence最长上升子序列 (C++/Java)
题目: Given an unsorted array of integers, find the length of longest increasing subsequence. Example: ...