【问题标题】:Kafka Connect stream and Postgresql DataFileRead Slow PerformanceKafka Connect 流和 Postgresql DataFileRead 性能缓慢
【发布时间】:2020-12-11 03:16:10
【问题描述】:

我正在使用 Kafka Connect 流式传输具有 250,000,000 条记录的数据库。从源头读取没有问题,它在不明显的时间范围内被完全读取并存储在 Kafka 代理上。水槽侧的速度非常慢,需要几天才能完成。

我正在使用具有以下配置的 JDBC Sink 连接器:

"config": {
    "auto.create": "true",
    "auto.evolve": "true",
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "insert.mode": "upsert",
    "pk.fields": "id",
    "pk.mode": "record_value",
    "tasks.max": "20",
    "batch.size": "5000",
    "max.poll.records": "5000"
}

我正在使用 aws postgres RDS 实例:db.m5.4xlarge(8 核 16vcpus 64gb ram)

sink 表除了主键之外没有索引。使用 RDS 性能洞察,DataFileReadWALWriteLock 消耗了绝大多数活动(DataFileRead ~60%,WalWriteLock ~30-40%)。

我不熟悉数据库速度和管理,这是典型的表现吗?如果没有,我可以寻找哪些方法来提高性能?这是我的实例根本没有足够强大来处理写入的情况吗?

这是数据库负载的图像,尾端附近绿线的增长是我删除受影响接收器表上的所有索引时。

【问题讨论】:

    标签: database postgresql apache-kafka apache-kafka-connect


    【解决方案1】:

    我在发布前大约 20 分钟清除了除主键之外的所有索引。这成倍地增加了处理时间,现在已经处理了几百万行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-23
      • 2015-01-17
      • 2019-03-12
      • 2011-03-20
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多