Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]kafka容器消耗大量CPU资源 #13589

Closed
xkmyf opened this issue May 13, 2022 · 8 comments
Closed

[BUG]kafka容器消耗大量CPU资源 #13589

xkmyf opened this issue May 13, 2022 · 8 comments
Assignees
Labels
类型:优化 需要针对某个已有功能进行特定的修改优化

Comments

@xkmyf
Copy link

xkmyf commented May 13, 2022

联系方式

xkmyf@qq.com

MeterSphere 版本

v1.20.2-lts-b9564d5c

使用外置数据库

问题描述

MeterSphere并没有执行接口自动化或性能任务,但是kafka容器一直在消耗大量CPU资源。初步定位是kafka中kafka.admin.ConsumerGroupCommand进程相关逻辑导致,可能是因为旧版本kafka本身的bug引起的。
目前容器内kafka是2.5.0版本,而kafka在2.5.1版本修复了如下bug
https://issues.apache.org/jira/browse/KAFKA-10134
https://issues.apache.org/jira/browse/KAFKA-10254
建议将kafka升级到最新版本

重现步骤

1:通过 docker stats 查看CPU使用量,发现kafka不断的占用大量CPU资源(宿主机2CPU的场景)
docker-stats

2:通过 docker exec -it kafka /bin/bash 进入kafka容器内用top查看
image

3:通过ps- ef | grep java查看具体java进程
image

期待的正确结果

No response

相关日志输出

No response

附加信息

No response

@github-actions github-actions bot added the 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 label May 13, 2022
@xkmyf xkmyf changed the title [BUG]kafka容器消耗大量CPU [BUG]kafka容器消耗大量CPU资源 May 13, 2022
@liuruibin
Copy link
Member

我们的Kafka 用的是2.8.1版本,Kafka作为优秀的中间件你也可以搭建自己的集群,只需要将配置文件中的地址和端口改成你需要的即可

@github-actions github-actions bot added 状态:待反馈 and removed 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 labels May 14, 2022
@xkmyf
Copy link
Author

xkmyf commented May 14, 2022

我们的Kafka 用的是2.8.1版本,Kafka作为优秀的中间件你也可以搭建自己的集群,只需要将配置文件中的地址和端口改成你需要的即可

我看镜像用的是2.5.0版本的
image
image

进入容器内查看libs中也是2.5.0
image
@liuruibin

@github-actions github-actions bot added 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 and removed 状态:待反馈 labels May 14, 2022
@liuruibin
Copy link
Member

你可以手动改tag,这个2没有指向最新的2.8.1,我们后面会更新tag
registry.cn-qingdao.aliyuncs.com/metersphere/kafka:2.8.1

@github-actions github-actions bot added 状态:待反馈 and removed 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 labels May 14, 2022
@xkmyf
Copy link
Author

xkmyf commented May 14, 2022

你可以手动改tag,这个2没有指向最新的2.8.1,我们后面会更新tag registry.cn-qingdao.aliyuncs.com/metersphere/kafka:2.8.1

好的

@xkmyf xkmyf closed this as completed May 14, 2022
@github-actions github-actions bot added 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 and removed 状态:待反馈 labels May 14, 2022
@xkmyf xkmyf reopened this May 16, 2022
@xkmyf
Copy link
Author

xkmyf commented May 16, 2022

目前kafka已使用的是2.8.1版本,且部署在了新的机器上测试了下还是kafka频繁消耗大量CPU,怀疑是其他组件调用kafka逻辑有问题,希望能够排查优化下。

@liuruibin
Copy link
Member

我在测试中并没有出现长期占用cpu的情况,只是在healthcheck的时候cpu会突然升高一下。这是正常现象,你如果很介意这个可以自己部署kafka

@github-actions github-actions bot added 状态:待反馈 and removed 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 labels May 17, 2022
@xkmyf
Copy link
Author

xkmyf commented May 18, 2022

我在测试中并没有出现长期占用cpu的情况,只是在healthcheck的时候cpu会突然升高一下。这是正常现象,你如果很介意这个可以自己部署kafka

好的,感谢,验证了下,确实是healthcheck导致的;
docker-compose-kafka.yml中默认配置的healthcheck节点每6秒启动一次java服务(kafka.admin.ConsumerGroupCommand)做健康检查
image

我手动改interval=300s后,对于4CPU的机器,CPU(usage-user)平均使用率从12%下降到了2%
image

建议更换下检查程序(test: ["CMD", "kafka-consumer-groups.sh", "--bootstrap-server", "localhost:9093", "--list"]),作为一个频繁执行的检查任务,太耗资源了。

@github-actions github-actions bot added 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 and removed 状态:待反馈 labels May 18, 2022
@youliyuan-fit2cloud
Copy link

感谢反馈,我们需要再研究一下是否采纳您的建议~

@github-actions github-actions bot added 状态:待反馈 and removed 状态:待处理 已分配给相关处理人等待处理人处理并更新状态 labels May 23, 2022
@youliyuan-fit2cloud youliyuan-fit2cloud added 类型:优化 需要针对某个已有功能进行特定的修改优化 and removed 状态:待反馈 labels May 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
类型:优化 需要针对某个已有功能进行特定的修改优化
Projects
None yet
Development

No branches or pull requests

3 participants