压测:celey backend为rabbitmq pk redis

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

使用celery的backend异步获取结果,本文使用rabbitmq 和 redis分别作为backend,代码对比如下

复制代码
from celery import Celery, platforms
import time
import os
from datetime import datetime

app = Celery('proj',
             broker='amqp://admin:admin@ip:5672',     //rabbitmq
             backend='amqp://admin:admin@ip:5672',    //redis
             //backend='redis://ip:10013/0',
             include=['tasks']
             )
app.conf.update(
    CELERYD_PREFETCH_MULTIPLIER=1,
    CELERY_ACKS_LAT = True,
)

@app.task
def fun_1(n):
    return {"task_id": "0a14c9ac91de419880c4499a8f57418e",
            "status": 0,
            "desc": str(n) }

@app.task
def chk_total_callback(tasks_rets):
    end_time = datetime.now()
    print "end_time", end_time
    return 0


if __name__ == "__main__":
    app.start()
复制代码

发送消息

复制代码
from tasks import *                                                    
from celery import group, chain                                        
from datetime import datetime                                          
import time                                                            
                                                                       
                                                                       
#job_group = group([fun_1.s(i) for i in range(30000)])                 
beg_time = datetime.now()                                              
for j in range(8000):
    job_group = group([fun_1.s(i) for i in range(20)])                 
    chain(job_group, chk_total_callback.s())()                         
    #time.sleep(0.25)                                                  
                                                                       
print "beg_time:", beg_time
复制代码

压测场景一:

注:1000*20:一次发送1000次,分片20

力度

backend

耗时

内存峰值

均值

1000*20

 

rabbitmq

18:40:36-18:41:21

0.504G

45ms

redis

18:48:37-18:51:21

11.84M

82ms

2000*20

rabbitmq

21:57:06 -21:58:41

1.008G

47.5ms

redis

18:58:52-19:04:10

20.26M

159ms

3000*20

rabbitmq

21:51:40-21:54:03

1.512G

47.6ms

redis

19:43:31-19:51:41

28.18M

163ms

4000*20

rabbitmq

20:59:12-21:02:28

2.268G

49ms

redis

20:00:00-20:10:52

37.10M

163ms

压测场景二:

500*20: 500次,每次间隔1s,分片20

力度

backend

耗时

内存峰值

耗时

500*20

 

rabbitmq

22:34:28-22:43:01

0.504G

513s

redis

22:49:23-22:57:56

7.63M

513s

压测场景三:

8000 * 0.25 = 2000s, 任务数:8000   8000 * 20 + 8000 = 8000 * 21=168000 * 2=336000

力度

backend

耗时

内存峰值

耗时

8000 * 0.25 = 2000s

*20

 

rabbitmq

10:51:38-11:28:06

1.26G

2188s

redis

11:56:17-12:33:00

65.96M

2203s

16000 * 0.25 = 4000s

*20

 

rabbitmq

18:26:39-19:39:37

4.28G

73*60=4380

redis

20:13:57-22:49:33

130.69M

9360s








本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/7102829.html,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
设计模式 NoSQL Java
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
|
28天前
|
NoSQL 关系型数据库 MySQL
安装Docker&镜像容器操作&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio
安装Docker&镜像容器操作&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio
349 1
|
1月前
|
消息中间件 存储 NoSQL
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
|
1月前
|
消息中间件 存储 缓存
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶
|
6月前
|
消息中间件 NoSQL 关系型数据库
【Kubernetes部署Shardingsphere、Mycat、Mysql、Redis、中间件Rocketmq、Rabbitmq、Nacos】
【Kubernetes部署Shardingsphere、Mycat、Mysql、Redis、中间件Rocketmq、Rabbitmq、Nacos】
129 0
|
4月前
|
消息中间件 缓存 NoSQL
[中间件] 秒杀系统秒杀率提高300%?教你如何利用redis和rabbitmq 优化应用!
[中间件] 秒杀系统秒杀率提高300%?教你如何利用redis和rabbitmq 优化应用!
170 0
|
4月前
|
消息中间件 前端开发 架构师
华为架构师复盘2024最全2340页面试题jvm+spring+redis+MQ+微服务
包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!
|
4月前
|
消息中间件 存储 NoSQL
SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件
SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件
569 2
|
7月前
|
NoSQL 关系型数据库 MySQL
同步 MySQL 数据至 ES/Redis/MQ 等的五种方式
同步 MySQL 数据至 ES/Redis/MQ 等的五种方式
419 0
|
8月前
|
消息中间件 前端开发 架构师
华为架构师复盘2023最全2340页面试题jvm+spring+redis+MQ+微服务
包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!