Datax调优

文章讲述了通过scp命令测试网络及网卡速度,避开网络高峰期进行任务调度,以及关注DataX节点的磁盘IO负载来优化系统性能。在参数调优方面,调整了DataX的全局和局部参数,如并发度、数据批量大小等,并探讨了JVM内存设置对任务执行效率的影响,例如通过-Xms和-Xmx控制内存分配,防止OOM错误。尽管在不同JVM配置下,任务耗时保持不变,但展示了调整这些参数的必要性。
摘要由CSDN通过智能技术生成

网络带宽等硬件因素调优

1、使用scp移动文件等方式观察实际网络及网卡速度;
2、结合监控观察任务运行时间段,网络整体的繁忙情况避开网络高峰
3、观察datax节点磁盘IO负载

参数调优

全局参数

{
   "core":{
        "transport":{
            "channel":{
                "speed":{
                    "channel": 2, ## 数据导入的并发度
                    "record":-1, ##解除对读取行数的限制
                    "byte":-1, ##解除对字节的限制
                    "batchSize":2048 ##每次读取batch的大小
                }
            }
        }
    },
    "job":{
            ...
        }
    }

局部参数

{
    "job": {
        "setting": {
            "speed": {
                "channel": 2, ## 数据导入的并发度
                "record":-1, ##解除对读取行数的限制
                "byte":-1, ##解除对字节的限制
                "batchSize":2048 ##每次读取batch的大小
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "*****",
                        "column": [*],
                        "splitPk": "db_id", ## 必须指定切分键并发才生效
                        "connection": [
                            ......
                                ]
                            }
                        ]
                    }
                },
               "writer": {
                    ......
channel增大,可根据服务器的实际配置修改datax.py,提升-Xms与-Xmx,来防止OOM。
DEFAULT_JVM = "-Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%s/log" % (DATAX_HOME)
channel并不是越大越好,过分大反而会影响宿主机的性能。

jvm调优

$ python ./bin/datax.py  --jvm="-Xms512m -Xmx512m" ./job/stream2stream.json
任务启动时刻                    : 2019-09-12 16:51:04
任务结束时刻                    : 2019-09-12 16:51:14
任务总计耗时                    :                 10s
任务平均流量                    :          147.82MB/s
记录写入速度                    :        5000000rec/s
读出记录总数                    :            50000000
读写失败总数                    :                   0

$ python ./bin/datax.py  --jvm="-Xms1G -Xmx1G" ./job/job.json
任务启动时刻                    : 2019-09-12 16:54:38
任务结束时刻                    : 2019-09-12 16:54:48
任务总计耗时                    :                 10s
任务平均流量                    :          147.82MB/s
记录写入速度                    :        5000000rec/s
读出记录总数                    :            50000000
读写失败总数                    :                   0

根据服务器条件为job设置合适等jvm大小,可惜我使用的streamreader没测出效果,从十万到千万,它总是保持总耗时10s。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值