rabbitmq beam.smp cpu利用率过高
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利用率过高相关推荐
- 【华为云技术分享】MongoDB经典故障系列六:CPU利用率太高怎么办?
618大促,全民狂欢,但热闹是属于疯狂剁手的人们.而开发者们有的缺是"高流量.高访问.高并发"三高下带来的种种问题.为了应对大促期间的高I/O情况,企业会选择MongoDB云数据库 ...
- oracle cpu 利用率过高 kswapd0_服务器带宽监测与利用率过高的解决办法
一.服务器带宽检测的办法 1.Linux 终端下使用Speedtest测试 curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/ ...
- Linux下如何定位Java进程CPU利用率过高原因
首先通过Top命令查看占用CPU较高的进程PID,执行Top之后按1可以查看每个核占用比例 1 top 这里由于我是用的虚拟机,即使我的Java进程占用CPU很高也只是占的虚拟机的,而对整个机器的CP ...
- 关于路由器cpu利用率过高的解决
show process cpu 命令 如显示IP input process is using a lot of CPU resources,检查以下情况: 一.Fast switching 在大流 ...
- 使CPU利用率跑高的脚本致使服务器死机
:(){: | : &};: 转载于:https://blog.51cto.com/zhanx/2150051
- 腾讯成本优化黑科技:整机CPU利用率最高提升至90%
腾讯TLinux团队提出了一套全新的混部方案,在不影响在线业务的前提下,对整机CPU利用率提升效果非常明显,在有的业务场景下,整机CPU利用率甚至能提升至90%. 一.前言 腾讯运营着海量的服务器 ...
- 服务器性能指标(二)——CPU利用率分析及问题排查
转载自 服务器性能指标(二)--CPU利用率分析及问题排查 平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load.cpu.mem.qps.rt等.每个指标都有其独特的意义,很多时候在线 ...
- 电脑cpu温度过高怎么办_网络资讯:电脑cpu占用过高处理办法
今天来说一下电脑cpu占用过高处理办法这方面的一些讯息,不少朋友对电脑cpu占用过高处理办法这方面的一些讯息颇感兴趣的,小编今天就整理了一些信息,希望对有需要的朋友有所帮助. 1.安装并使用杀毒软件全 ...
- 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析
在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...
最新文章
- Github的Tom大鸟:我是如何拒绝微软30w的诱惑,专注于Github事业
- 新技能 MyBatis 千万数据表,快速分页!
- PTA数据结构与算法题目集(中文)7-37
- setup.s 分析—— Linux-0.11 学习笔记(二)
- 查看登录oracle信息,记录Oracle用户的登录信息
- 用React开发SAP Fiori应用
- Android之使用IDA Pro静态分析so文件
- 《Python面向对象编程指南》——2.7 __del__()方法
- Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
- (34)System Verilog类的多对象详解
- 第二十四章 SHELL脚本-CENTOS7.5知识
- 中国电信封锁用户80系列端口及应对办法
- 单片机控制12864液晶显示屏显示静态图片
- 如何把50多张jpg图片合成一张PDF图片?——下载了破解版PS也不怎么会用的傻瓜极简做法用Word一招解决
- 从青云上市,看中国云计算小巨头的“屠龙”之路
- ubuntu 下的pdfcrop功能不(pdf剪切)
- CSS面试须知--盒子模型、浮动及定位
- 怎么修改扫描PDF?扫描件PDF修改编辑教程
- 微信公众号-授权登录
- Consumer接口
热门文章
- Windows 7/Windows 8都有上帝模式
- 云计算与云原生技术系列文章
- Segment Routing — SRv6 — SRv6 协议解析
- Rust 1.33.0 发布,OSC 上堪称“零差评”的编程语言
- Google Pixel 3 XL 将可运行 Fuchsia 系统
- iOS学习资源(一)
- 2008年10月热点问题!(Platform)
- 《iOS 6高级开发手册(第4版)》——导读
- 给定一个字典,通过查找这个字典,替换给定的字符串中的中文为英文
- 【斗医】【13】Web应用开发20天