jvm参数 log4j 日志路径_Log4J调用kafka时JVM堆 内存溢出问题定位

【使用场景】

很多应用程序使用Log4j记录日志,如何使用Kafka实时地收集与存储这些Log4j产生的日志呢?一种方案是使用其他组件(比如Flume,或者自己开发程序)实时监控这些日志文件,然后发送至Kafka。而另外一种比较便捷的方案是使用已封装 Kafka 的Log4jAppender:只需在Log4j配置文件中进行简单配置,即可完成将Log4j产生的日志实时发送至Kafka中。但在log4j推送kafka程序的过程中,因log4j其对底层封装的比较好,底层的队列和内存管理对开发者几乎透明,导致使用过程中对出现的内存溢出定位带来一定的障碍。

【现场还原】

场景描述:某柜台产生了一大批历史日志文件,用户希望把这部分历史数据进行深度分析:如用户的购买情况,用户交易的集中时间频率等,进行潜在价值挖掘。但在模拟用户现场导入历史数据的过程中,当历史数据的数量超过一定阀值时(测试数据为800百万),就会出现jvm堆内存不够的异常。

启动命令如下:

运行过程中出现如下错误:

【错误定位】

1、引入利器

(1)为了追踪内存的泄露问题,引入jvm内存排查定位工具: JProfiler。

【Tip:JProfiler把CPU、执行绪和内存的剖析组合在一个强大的应用中。其可提供许多IDE整合和应用服务器整合用途,其是一个独立的应用程序,但其提供Eclipse和IntelliJ等IDE的插件。它允许两个内存剖面评估内存使用情况和动态分配泄漏和CPU剖析

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值