datax因为脏数据降速问题解决

本文主要探讨了DataX因脏数据导致的性能下降问题,分析了脏数据如何触发JVM GC并影响数据写入速度。解决方案包括调整JVM内存、检查和处理脏数据,以及在SQL语句中规避脏数据写入。通过实验发现,不转换数据格式可以避免脏数据收集,从而避免速度降低。最后提出,通过避免脏数据写入和回滚操作,以及降低Tomcat版本,可以有效解决速度降低问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一言以蔽之:datax可能会因为脏数据太多导致频繁回滚操作,进一步让jvm内存触发gc,让速度降低到0,可以在sql语句中规避脏数据的写入来规避
1.问题

datax使用类型转换触发jvm gc然后降速至0失去响应。

->脏数据为什么会触发gc

->脏数据导致datax回滚写入降速

a.首先是开始就低速,发生在动态基线策略里面

b.到八十万条左右的时候就开始低速,发生在动态基线和状态评价里面,这时日志伴随脏数据记录输出。

c.id会从2049开始,是否有一个2048的块大小进行抽取,然后过一段时间才会变回1

d.出现问题在后面,也就是metaspace快满的时候,是否是jvm或者mysql内存不够用,导致sql语句的执行出现问题,但是为什么这样的问题前面没出现,后面才出现。为什么后面会出现这种问题,是sql先失效导致的脏数据,再导致jvm,还是jvmgc导致sql失效产生脏数据。

可能原因:

1.数据问题

2.jvm内存不够用

应该是这个原因,不确定是jvm的问题还是mysql的问题,如果是不转换数据格式,那么很快就能完成也没有jvm info信息的生成:

metaspace占用达到了97%,速度就降下来了,compress class space也到了90,触发了gc
在这里插入图片描述

2020-11-27 10:02:22.070 [job-0] INFO  VMInfo - 
	 [delta cpu info] => 
		curDeltaCpu                    | averageCpu                     | maxDeltaCpu                    | minDeltaCpu                    
		-1.00%                         | -1.00%                         | -1.00%                         | -1.00%
                        

	 [delta memory info] => 
		 NAME                           | used_size                      | used_percent                   | max_used_size                  | max_percent                    
		 PS Eden Space                  | 239.66MB                       | 75.96%                         | 239.66MB                       | 75.96%                         
		 Code Cache                     | 10.74MB                        |<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值