tornado并发性能测试
1.带server2.0装饰器
接口访问数据库查询
并发100 平均每秒处理11.8次请求 平均响应时间6944ms
![]()
接口不做任何处理
并发100 平均每秒处理99.9次请求 平均响应时间3ms
![]()
并发500 平均每秒处理467.9次请求 平均响应时间4ms
![]()
并发1000 平均每秒处理936.8次请求 平均响应时间6ms
![]()
再提高并发 并不能再提高处理速度了
小法目前接口
并发100 平均每秒处理11次请求 平均响应时间6647ms
![]()
2.接口不使用任何装饰器
接口不做任何处理
并发100 平均每秒处理100.2次请求 平均响应时间3ms
![]()
并发1000 平均每秒处理949.2次请求 平均响应时间4ms
![]()
并发2000 平均每秒处理1500.4次请求 平均响应时间16ms
![]()
接口访问数据库
并发100 平均每秒处理16.2次请求 平均响应时间4086ms
![]()
小结
加server2.0装饰器后出错率上升,不加装饰器运行稳定。
并发数主要限制于数据库的访问速度。
server2.0并没有提高并发
3.使用异步装饰器
接口不做任何处理
@gen.coroutine
并发1500 平均每秒处理1296.5次请求 平均响应时间8ms
![]()
使用异步访问数据库
并发100 平均每秒处理96.1次请求 平均响应时间39ms
![]()
from elasticsearch_async import AsyncElasticsearch
es = AsyncElasticsearch(
hosts = [
"117.78.26.××:××××",
"117.78.26.××:××××"
],
type = "es",
http_auth = ("×××××","×××××"),
timeout = 60
)
@web.asynchronous
@gen.engine
def post(self, *args, **kwargs):
result = {'code': 200, 'msg': '返回成功','data':{}}
body = {"size": 10, "_source": ["id","name"],
"query":
{"bool": {"must": [
{"match":{"name":{"query":"婚姻法"}}},
{"match": {"law_type": {"query": "法律"}}},
]}}}
laws = yield self.es.search("law_search_v2","_doc",body)
# laws = "测试"
result['data']['laws'] = laws
self.finish(result)
并发600 平均每秒处理550次请求 平均响应时间75ms
再增加并发请求数量并发量反而会降低
![]()
总结
异步请求数据库稳定性好,速度快,并发量大
目前数据库异步支持
es : elasticsearch-async 支持es6.0
mongodb : motor
mysql : tornado_mysql
接口访问使用tornado.httpclient.AsyncHTTPClient
4.不同异步方式之间的区别
代码难度大
![]()
便与开发
![]()
tornado并发性能测试的更多相关文章
- asyncio与gevent并发性能测试
asyncio与gevent并发性能测试 在对网站进行扫描或者暴破时需要对网站进行高并发操作,然而requests+concurrent多线程性能上不太理想,了解到python用得比较多的并发库有as ...
- ORM增删改查并发性能测试
这两天在对一些ORM进行性能测试(涉及SqlSugar.FreeSql.Fast.Framework.Dapper.LiteSql),测试用的是Winform程序,别人第一眼看到我的程序,说,你这测试 ...
- ORM增删改查并发性能测试2
前言 上一篇<ORM增删改查并发性能测试>出现了点小失误,有的输出SQL日志的代码没有禁用,数据库连接字符串可能有问题.统一环境,统一代码后,重新写一篇. 这次重点是并发性能测试,真不是为 ...
- jmeter如何玩之badboy + jmeter并发性能测试
今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...
- python tornado异步性能测试
测试两个接口 # -*- coding:utf-8 -*- import time import tornado.web import tornado.gen import tornado.ioloo ...
- 30行代码搞定WCF并发性能测试
[以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main() { List< ...
- 如何使用jMeter对某个OData服务进行高并发性能测试
For project reason I have to measure the performance of OData service being accessed parallelly. And ...
- 简单好用的TCP/UDP高并发性能测试工具
工具下载地址: 链接:https://pan.baidu.com/s/1fJ6Kz-mfFu_RANrgKqYiyA 提取码:0pyf 最近测试智能设备的远程的性能,思路主要是通过UDP对IP和端口发 ...
- jmeter性能测试-高并发分布式部署
jmeter什么要做分布式部署? jmeter是运行在JVM虚拟机上的,当模拟大量并发时,对运行机器的性能/网络负载会很大. 此时就需要使用jmeter的分布式部署功能,实现多台被控机器同时并发访问被 ...
随机推荐
- screen命令使用简单说明
首先用screen [-S]命令建立一个session,然后就可以在这个session中建立多个window了.使用screen [-S]可以建立多个session,而每个session又可以建立多个 ...
- Spring Boot:实现MyBatis分页
综合概述 想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍 ...
- Git 本地仓库(使用小乌龟进行操作,一个人开发)
一.首先在本地创建版本库 创建成功最明显的特征是该目录下存在一个隐藏文件夹(.git) 前提:已设置显示隐藏文件 三种方式: 1.Git GUI Here(右击) 2.Git Bash Here(右击 ...
- thinkphp5ajax分頁&&搜索後分頁
//控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...
- vi,etc目录文件,环境变量,别名功能
1 vi命令使用技巧补充 1.1 如何快速编辑文本内容 yy ---快速复制文件内容 3yy ---复制三行内容 p ---快速粘贴文本内容 3p ---粘贴三行内容 dd ---快速删除文件内容 ...
- Centos6 samba服务配置
1.在阿里虚拟机中配置包源 在ecs的 /etc/yum.repos.d 创建个 alios.repo,内容如下 [alios.$releasever.base.$basearch] name=al ...
- Zookeeper_ACL
getAcl path 查看某个node的权限 设置权限1 world方式 setAcl <path> world:anyone:<acl>例如 setAcl /node1 w ...
- 编译gd库出错
不知道大家有没有遇到在 X64 RedHat5 或者 RedHat4 下.编译安装PHP环境的时候. 安装了libxml,zlib,jpeg,libpng,freetype,libart_lgpl, ...
- 32| 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
- (持续更新)Qt3D 学习资源
目录 一.前言 1.1 什么是Qt3D 1.2 Qt3D 的利与弊 利:原生支持 弊处:资料过少 二.学习建议 2.1 OpenGL 学习资料 2.2 Qt3D 资料 2.2.1 视频资料 2.2.4 ...