栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

kafka os::commit

kafka os::commit

故障现象:

kafka报错如下,经过了多次调配jvm的内存限制,问题依旧

修复

​
增加操作系统允许创建的最大内存映射数:

sysctl -w vm.max_map_count= #default is 65536

sysctl -w vm.max_map_count=262144

其他内核参数优化调整

net.nf_conntrack_max = 6553600
net.ipv6.conf.all.disable_ipv6 = 1
net.core.rmem_default=262144
net.core.rmem_max=2097152
net.core.wmem_default=262144
net.core.wmem_max=2097152
net.core.somaxconn = 65535


​
结论:

事实证明,Kafka 为每个日志文件、每个分区、每个主题分配了一个内存映射。当您无限期地保留 kafka 消息并且还有大量分区时,这意味着该进程达到了它可以分配的内存映射数量的限制。这在kafka 文档中有详细描述(该部分的第三个要点)。

要了解 Java 进程正在使用多少内存映射,请使用以下命令:

​​​​​​​jps -l
pmap  | wc -l

这种东西只有在Kafka重启后才会发现。它展示了测试重新启动(即故障转移和故障恢复场景)的重要性——即使在生产中也是如此。出现问题时能够自信地重新启动非常重要,以便快速恢复服务。

这也表明需要对操作系统级别的值进行良好的监控,而不仅仅是应用程序级别的值或简单的 CPU 和内存消耗。在这种情况下,映射内存部分的数量只会在永久保存消息或承受更多负载时增加。了解要监控的内容至关重要,有时只能通过通读所有文档或查找可以从中学习的公共事后分析才能理解。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号