【Druid】CPU利用率过高问题排查和优化
  PSKWK48llyuT 2023年11月02日 52 0

问题现象: druid实时任务,消费kafka流量上涨之后druid集群服务器CPU idle只有2-3%可用。导致druid不能对外提供服务,并且实时摄入任务失败。于是,从实时摄入任务入手查看日志。发现gc over limits异常,体现peon进程频繁gc导致任务失败。

初步解决: middlemanager的配置runtime.properties中,druid.indexer.runner.javaOpts=-server -Xms1g -Xmx8g。 因为-Xms1g设置最小堆,如果-Xms设置较小,JVM为了保证系统尽可能在指定内存范围内运行,就会频繁进行GC操作。对系统性能产生影响 于是将druid.indexer.runner.javaOpts修改为-server -Xms4g -Xmx16g.

1、调整前后内存情况对比。 增加jvm监控,从监控看,设置middlemanager最小堆 -Xms是否合理。 调整前,使用内存used接近初始内存init(1G),频发触发GC消耗CPU。调整后预计 -Xms = 3g比较合理(需要比较高峰时段验证) image.png 2、根据qps流量高峰15:00 - 17:00 = 1346815342529 - 1346600303661 = 215038868 2亿条。当前流量1亿条/小时 druid ingest任务配置"taskCount": 40.

image.png

相当于每个Peon进程处理 1亿 / 40 = 250万/小时 从Peon内存占用情况250万数据处理过程内存保持再2G以下

image.png 结论: 高峰期,每个peon每小时处理2500000条数据。内存占用2G middlemanager的runtime.properties修改配置大于2G,减少gc, -server -Xms4g -Xmx16g配置算合理范围

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4crWjjQBqFOy   2023年11月13日   28   0   0 javamavenandroid
  wpWn7yzs0oKF   2023年11月13日   32   0   0 javaapacheHDFS
PSKWK48llyuT