位置: 编程技术 - 正文

当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

编辑:rootadmin

推荐整理分享当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

最近同事反映,在使用pt-heartbeat监控主从复制延迟的过程中,如果master down掉了,则pt-heartbeat则会连接失败,但会不断重试。

重试本无可厚非,毕竟从使用者的角度来说,希望pt-heartbeat能不断重试,直到重新连接上数据库。但是,他们发现,不断的重试会带来内存的缓慢增长。

重现

环境:

pt-heartbeat v2.2.,MySQL社区版 v5.6.,Perl v5..1,RHEL 6.7,内存M

为了避免数据库启停对pt-heartbeat内存使用率的影响,故MySQL和pt-heartbeat分别运行在不同的主机上。

运行pt-heartbeat

# pt-heartbeat --update -h ... -u monitor -p monitor -D test --create-table

监控pt-heartbeat的内存使用率

获取pid

查看该进程的内存使用率

# top -p

运行了0:.(TIME+列),MEM一直稳定在3.3%

现关闭数据库

# service mysqld stop

刚才的pt-heartbeat命令不断输出以下信息

同样CPU时间后,MEM增长到4.4%, 增长了1%,考虑到内存M,该进程的内存占用增加了5M,虽然不是很多,但考虑到进程的内存增加并没有停止的意思,这个现象还是要引起注意的。

当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

同时,通过pmap命令,发现,地址的RSS和Dirry也会增长,增长的速率是4k/s

后来研究pt-heartbeat的源码,才发现代码有点bug

以上代码摘自get_dbh函数,用于获取数据库的连接,如果获取失败,则重试1次,然后通过die函数抛异常退出。

但是,通过设置如下断点,发现当$tries为0时,if函数里面的PTDEBUG && _d("$EVAL_ERROR")语句能执行,但die函数就是没有抛出异常,并退出脚本

后来,将上述代码的最后一个if函数修改如下:

再次测试

启动数据库

# service mysqld start

执行pt-heartbeat命令

# pt-heartbeat --update -h ... -u monitor -p monitor -D test --create-table

停止数据库

# service mysqld stop

刚才执行的pt-heartbeat命令异常退出

“test:”就是加入的测试字符。

结论

很奇怪,只是单纯的die $EVAL_ERROR不会抛出异常,并退出脚本,但修改后的die "test:$EVAL_ERROR"却会退出脚本。

很显然,这确实是个bug,不知道是不是与perl的版本有关。

很好奇,失败的连接如何导致内存的不断增长?

最后,给percona官方提了个bug

down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

SQL Server 树形表非循环递归查询的实例详解 很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL或以上版本就能用别的语法进行查询,下面是示例。--通过子

SQL Server 安装后服务器名称找不到的解决办法 网上说使用localhost即可,确实没错,但是有的仍旧会报出无法找到错误,我在无法通过的时候又重新安装了SQLServer,这次选中全部默认安装,之前使用

利用SQL Server数据库邮件服务实现监控和预警 背景现在越来越多的企业、公司要求对于数据库实现7*小时的数据库监控,一般情况下采用的就是第三方的平台来实现邮件和手机短信的监测提醒。前

标签: 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

本文链接地址:https://www.jiuchutong.com/biancheng/318958.html 转载请保留说明!

上一篇:SQL SERVER 9003错误解决方法(sql2000错误9003)

下一篇:SQL Server 树形表非循环递归查询的实例详解(sql查询树状数据)

  • 未交增值税和应交增值税科目怎么调整
  • 增值税开票软件在哪下载
  • 增值税进项发票怎么做账
  • 公司车辆过户给个人车牌可以保留吗
  • 我国增值税税率改革带来的影响
  • 以前年度损益结转到未分配利润
  • 交易性金融资产的交易费用计入哪里
  • 固定资产的入账
  • 计提利息收入分录怎么写
  • 个人签租车协议有法律效力吗
  • 汇总缴纳增值税的三级公司怎么汇总备案
  • 主营业务收入具体是什么
  • 财务报表层次重大错报风险增大了认定层次
  • 物业公司收取电费加价依据
  • 小规模纳税人隔月可以作废发票吗
  • 高新技术企业资助
  • 董事费监事费高管薪酬标准
  • 坏账损失计入什么费用
  • 长期待摊费用以后怎么摊销
  • 公司之间借款收据要领导签字吗
  • 其他应付款不需要支付是债务重组么
  • 广告公司 成本
  • 申报个税是按哪个月的工资表
  • 国际代理运费和港杂费一样吗
  • 用户登录系统后首先进入什么
  • 在Win7中,鼠标非最大化
  • win11怎么回到10
  • 以前年度多计提的附加税怎么调账
  • 预收款项的减少
  • 固定资产属于金融负债吗
  • 苹果macbook 系统
  • 退税有啥影响
  • 小规模纳税人缴纳增值税怎么算
  • 不良资产核销的影响
  • 即期结售汇期限包括
  • PHP:zip_entry_filesize()的用法_Zip函数
  • 关于减肥的好方法
  • 小微企业城建税及附加减免优惠
  • php获取本机ip地址
  • vue3.0优点
  • php设置header参数
  • 持续集成的步骤
  • 小程序生命周期钩子
  • nvm 安装node
  • phpstudy ftp怎么用
  • 股权转让 减资
  • 公司发放给员工的出差补助需要合并计算个税吗
  • 社保退回的款怎么继承
  • 发票认证系统叫什么名字
  • 折旧费和折旧额的区别
  • 根据工资总额组成的规定下列哪些列入工资总额的范围
  • 建筑工程分包案例
  • MySQL读写分离中间件
  • 减值准备的会计科目
  • 药品的增值税税率13%还是17%?
  • 先前收取的包装费用
  • 电商平台收入何时到账
  • 专项应付款二级科目
  • 卖旧固定资产计入哪个科目
  • 库存商品期末为负数
  • 可以自行开具增值税专用发票的行业有哪些
  • 怎么用sql脚本创建数据库
  • win10系统如何查看显卡配置
  • CentOS上查看系统信息以及配置防火墙的方法
  • u盘安装mac系统
  • win8.1黑屏
  • win7升级win10系统要多久
  • cocos3d物理引擎
  • cocos2dx-js
  • vim三种模式及其之间的切换
  • 一周总结家长寄语
  • dos批命令
  • python读json文件和写json文件
  • 中文路径和英文路径
  • 清理服务器c盘
  • js格式化输出数字
  • [置顶]游戏名 TentacleLocker
  • 审计会计税务的区别及联系
  • 城市垃圾处理费会计分录
  • 全国城管改革什么时候结束
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设