RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

问题:
rabbitmq 的吞吐有多大?
目前开启了rabbitmq的持久化/Ack 机制/用的是direct路由器。
上次测试,4.5w/min 的时候,beam.smp cpu利用率过100%
下午做了个测试,不阻塞下游,只测试rabbitmq 的消费速度:

golang 实现如下:

package main
import ("fmt""github.com/streadway/amqp""sync"
)
const (queueName               = "queue.newpushservice.deal.push"exchange                = "exchange.newpushservice.deal.push"mqurl                   = "amqp://admin:admin@172.18.19.168:5672/"ReceiverNum         int = 5ChannelBufferLength     = 1000
)func main() {fmt.Println("start")forever := make(chan bool)go WorkMessage(ReceiveMessage())<-forever
}func getChannel() (*amqp.Connection, *amqp.Channel, error) {conn, err := amqp.Dial(mqurl)if err != nil {return nil, nil, err}channel, err := conn.Channel()if err != nil {return nil, nil, err}err = channel.Qos(1, 0, false)if err != nil {return nil, nil, err}return conn, channel, nil
}func ReceiveMessage() <-chan amqp.Delivery {out := make(chan amqp.Delivery, ChannelBufferLength)var wg sync.WaitGroupreceiver := func() {defer wg.Done()RECONNECT:for {_, channel, err := getChannel()if err != nil {panic(err)}msgs, err := channel.Consume(queueName, // queue"",        // consumerfalse,     // auto-ackfalse,     // exclusivefalse,     // no-localfalse,     // no-waitnil,       // args)if err != nil {panic(err)}//检测是否改通道有问题closeChan := make(chan bool, 1)go func() {cc := make(chan *amqp.Error)e := <-channel.NotifyClose(cc)fmt.Printf("[RABBITMQ_CLIENT], channel close error:%s", e.Error())closeChan <- true}()for {select {case msg, ok := <-msgs:if !ok {fmt.Println("channel be closed,need reconnect")continue RECONNECT}out <- msgcase <-closeChan:continue RECONNECT}}}}wg.Add(ReceiverNum)for i := 0; i < ReceiverNum; i++ {go receiver()}go func() {wg.Wait()fmt.Println("all receiver is done, closing channel")close(out)}()return out
}
func WorkMessage(in <-chan amqp.Delivery) {var wg sync.WaitGroupworker := func(msg amqp.Delivery) {defer wg.Done()fmt.Printf("receive message : %s", string(msg.Body))msg.Ack(false)}wg.Add(1)go func() {defer wg.Done()for message := range in {wg.Add(1)go worker(message)}}()go func() {wg.Wait()fmt.Println("all worker is done, closing channel")}()
}

消费速度在 30-40w/min,cpu 占有率在 180-200% , 内存占用在8%-10%。
4核64位系统,内存16G,cpu 型号( 8 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz)

rabbitmq beam.smp cpu利用率过高相关推荐

  1. 【华为云技术分享】MongoDB经典故障系列六:CPU利用率太高怎么办?

    618大促,全民狂欢,但热闹是属于疯狂剁手的人们.而开发者们有的缺是"高流量.高访问.高并发"三高下带来的种种问题.为了应对大促期间的高I/O情况,企业会选择MongoDB云数据库 ...

  2. oracle cpu 利用率过高 kswapd0_服务器带宽监测与利用率过高的解决办法

    一.服务器带宽检测的办法 1.Linux 终端下使用Speedtest测试 curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/ ...

  3. Linux下如何定位Java进程CPU利用率过高原因

    首先通过Top命令查看占用CPU较高的进程PID,执行Top之后按1可以查看每个核占用比例 1 top 这里由于我是用的虚拟机,即使我的Java进程占用CPU很高也只是占的虚拟机的,而对整个机器的CP ...

  4. 关于路由器cpu利用率过高的解决

    show process cpu 命令 如显示IP input process is using a lot of CPU resources,检查以下情况: 一.Fast switching 在大流 ...

  5. 使CPU利用率跑高的脚本致使服务器死机

    :(){: | : &};: 转载于:https://blog.51cto.com/zhanx/2150051

  6. 腾讯成本优化黑科技:整机CPU利用率最高提升至90%

    腾讯TLinux团队提出了一套全新的混部方案,在不影响在线业务的前提下,对整机CPU利用率提升效果非常明显,在有的业务场景下,整机CPU利用率甚至能提升至90%. 一.前言   腾讯运营着海量的服务器 ...

  7. 服务器性能指标(二)——CPU利用率分析及问题排查

    转载自  服务器性能指标(二)--CPU利用率分析及问题排查 平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load.cpu.mem.qps.rt等.每个指标都有其独特的意义,很多时候在线 ...

  8. 电脑cpu温度过高怎么办_网络资讯:电脑cpu占用过高处理办法

    今天来说一下电脑cpu占用过高处理办法这方面的一些讯息,不少朋友对电脑cpu占用过高处理办法这方面的一些讯息颇感兴趣的,小编今天就整理了一些信息,希望对有需要的朋友有所帮助. 1.安装并使用杀毒软件全 ...

  9. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

最新文章

  1. Github的Tom大鸟:我是如何拒绝微软30w的诱惑,专注于Github事业
  2. 新技能 MyBatis 千万数据表,快速分页!
  3. PTA数据结构与算法题目集(中文)7-37
  4. setup.s 分析—— Linux-0.11 学习笔记(二)
  5. 查看登录oracle信息,记录Oracle用户的登录信息
  6. 用React开发SAP Fiori应用
  7. Android之使用IDA Pro静态分析so文件
  8. 《Python面向对象编程指南》——2.7 __del__()方法
  9. Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
  10. (34)System Verilog类的多对象详解
  11. 第二十四章 SHELL脚本-CENTOS7.5知识
  12. 中国电信封锁用户80系列端口及应对办法
  13. 单片机控制12864液晶显示屏显示静态图片
  14. 如何把50多张jpg图片合成一张PDF图片?——下载了破解版PS也不怎么会用的傻瓜极简做法用Word一招解决
  15. 从青云上市,看中国云计算小巨头的“屠龙”之路
  16. ubuntu 下的pdfcrop功能不(pdf剪切)
  17. CSS面试须知--盒子模型、浮动及定位
  18. 怎么修改扫描PDF?扫描件PDF修改编辑教程
  19. 微信公众号-授权登录
  20. Consumer接口

热门文章

  1. Windows 7/Windows 8都有上帝模式
  2. 云计算与云原生技术系列文章
  3. Segment Routing — SRv6 — SRv6 协议解析
  4. Rust 1.33.0 发布,OSC 上堪称“零差评”的编程语言
  5. Google Pixel 3 XL 将可运行 Fuchsia 系统
  6. iOS学习资源(一)
  7. 2008年10月热点问题!(Platform)
  8. 《iOS 6高级开发手册(第4版)》——导读
  9. 给定一个字典,通过查找这个字典,替换给定的字符串中的中文为英文
  10. 【斗医】【13】Web应用开发20天