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.不同异步方式之间的区别

使用@gen.coroutine

代码难度大

使用ThreadPoolExecutor

便与开发

tornado并发性能测试的更多相关文章

  1. asyncio与gevent并发性能测试

    asyncio与gevent并发性能测试 在对网站进行扫描或者暴破时需要对网站进行高并发操作,然而requests+concurrent多线程性能上不太理想,了解到python用得比较多的并发库有as ...

  2. ORM增删改查并发性能测试

    这两天在对一些ORM进行性能测试(涉及SqlSugar.FreeSql.Fast.Framework.Dapper.LiteSql),测试用的是Winform程序,别人第一眼看到我的程序,说,你这测试 ...

  3. ORM增删改查并发性能测试2

    前言 上一篇<ORM增删改查并发性能测试>出现了点小失误,有的输出SQL日志的代码没有禁用,数据库连接字符串可能有问题.统一环境,统一代码后,重新写一篇. 这次重点是并发性能测试,真不是为 ...

  4. jmeter如何玩之badboy + jmeter并发性能测试

    今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...

  5. python tornado异步性能测试

    测试两个接口 # -*- coding:utf-8 -*- import time import tornado.web import tornado.gen import tornado.ioloo ...

  6. 30行代码搞定WCF并发性能测试

    [以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main()         {               List< ...

  7. 如何使用jMeter对某个OData服务进行高并发性能测试

    For project reason I have to measure the performance of OData service being accessed parallelly. And ...

  8. 简单好用的TCP/UDP高并发性能测试工具

    工具下载地址: 链接:https://pan.baidu.com/s/1fJ6Kz-mfFu_RANrgKqYiyA 提取码:0pyf 最近测试智能设备的远程的性能,思路主要是通过UDP对IP和端口发 ...

  9. jmeter性能测试-高并发分布式部署

    jmeter什么要做分布式部署? jmeter是运行在JVM虚拟机上的,当模拟大量并发时,对运行机器的性能/网络负载会很大. 此时就需要使用jmeter的分布式部署功能,实现多台被控机器同时并发访问被 ...

随机推荐

  1. 【转】如何在Ubuntu 14.04 LTS上设置Nginx虚拟主机

    介绍 转自http://www.pandacademy.com/%E5%A6%82%E4%BD%95%E5%9C%A8ubuntu-14-04-lts%E4%B8%8A%E8%AE%BE%E7%BD% ...

  2. Kafka 学习之路(五)—— 深入理解Kafka副本机制

    一.Kafka集群 Kafka使用Zookeeper来维护集群成员(brokers)的信息.每个broker都有一个唯一标识broker.id,用于标识自己在集群中的身份,可以在配置文件server. ...

  3. JavaWeb入门_模仿天猫整站Tmall_SSM实践项目

    Tmall_SSM 技术栈 Spring MVC+ Mybatis + Spring + Jsp + Tomcat , 是 Java Web 入门非常好的练手项目 效果展示: 模仿天猫前台 模仿天猫后 ...

  4. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

    Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...

  5. Mac上使用ssh连接服务器title显示服务器的ip

    Mac上使用ssh连接服务器title显示服务器的ip 使用Mac开发时,管理的服务器过多时,会搞混乱.可能有时啪啪啪一顿操作,最后发现操作错了机器. 解决方案 在远程服务器上,编辑vim /etc/ ...

  6. 【HDU - 2612】Find a way

    -->Find a way 直接上Chinese  Descriptions: hsj和lsh最近迷上了pokemon go的游戏.在双十一大物期中考试来临之前,他们想抓一只稀有土拨鼠来攒攒人品 ...

  7. python之内置函数,匿名函数,递归函数

    一. 内置函函数 什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就 ...

  8. K8s集群部署(一)------ETCD集群部署

    环境说明 三台主机: k8s-master  10.0.3.225 k8s-node1    10.0.3.226 k8s-node2    10.0.3.227 配置主机名解析 [root@k8s- ...

  9. HDU 6058:Kanade's sum(思维)

    题目链接 题意 给出一个n和一个k,求1~n的每个区间的第k大的总和是多少,区间长度小于k的话,贡献为0. 思路 首先有一个关系:当一个数是第k大的时候,前面有x个比它大的数,那么后面就有k-x-1个 ...

  10. 关系型数据库MySql简介

    什么是关系型数据库? 数据库就是用来存储数据的仓库,是一种特殊的文件. 根据存储的数据不同,划分为关系型数据库和非关系型数据库. 关系型数据库就是指 建立在关系模型基础上的数据库,通俗来讲这种数据库就 ...