Hi 在前面的邮件里面,已经提示可以使用 async-profiler [1] 来观察RocksDB的内部相关调用栈,这样能看到cpu是否在等待IO。另外iostat等工具可以看磁盘压力如何。至于数据倾斜,可以去看rocksDB的db目录大小,或者看各个subtask的input bytes大小,看看是否task间存在数据倾斜。
[1] https://github.com/jvm-profiling-tools/async-profiler 祝好 唐云 ________________________________ From: jindy_liu <286729...@qq.com> Sent: Friday, December 11, 2020 11:24 To: user-zh@flink.apache.org <user-zh@flink.apache.org> Subject: Re: 关于flink cdc的N流join状态后端的选择问题: FsStateBackend和RocksDBStateBackend 感谢指正!这里我验证了下你的说法,确实我理解有误了,我以为这个参数write buffer count以及max write buffer是taskmanager所有的slots的。从web ui来看,确实是很多算子都出现了is_stop_write。你的推断是正确的,老的配置参数下,看了下,确实经常出现is_stop_write=1的情况,然后线程就阻塞sleep了。 昨天调整了一版参数:改了下Slot为2,还是6台机器,job并发度设置成12。结果是之前的阻写没有了。跑一晚上10个小时左右,能跑21000W每张表的速度了,并且现在看也没有阻写的情况,硬盘的读写iops与util都很低,基本没有。但这个距离上线还是有差据,也就是6台机器只能处理5000/s的数据性能,有点低。 taskmanager.numberOfTaskSlots: 2 taskmanager.memory.process.size: 20480m taskmanager.memory.managed.fraction: 0.75 taskmanager.memory.network.fraction: 0.2 taskmanager.memory.network.max: 4gb #算子大概需要3G左右的network buf taskmanager.memory.network.min: 128mb #7G per slot writer + read state.backend.rocksdb.thread.num: 4 state.backend.rocksdb.writebuffer.count: 20 state.backend.rocksdb.writebuffer.size: 256M #5G state.backend.rocksdb.writebuffer.number-to-merge: 1 state.backend.rocksdb.block.cache-size: 2000M #2112M state.backend.rocksdb.block.blocksize: 64K state.backend.rocksdb.localdir: /opt/flink/rocksdb state.backend.rocksdb.files.open: 90000 查看些cpu很忙的机器,jstack发现性能开销都在读上了(跑21000W后),花在rocksdb.get读上较多,怎么看是读的内存还是磁盘来的?我看cpu比较忙的机器上,磁盘io读,基本没有了。看rocksdb本地dir所挂的ssd磁盘上的状态文件大小3台在7GB左右,别外3台在3GB左右(这里没法在web ui上看checkpointed datasize大小,目前由于没有成功过 ,mysql-cdc-connector会一直超时失败) @yuntang 这里看看rocksdb上还有提升空间和任务总体性能上还能有提升? ( 但出现1,2机器的cpu负载明显比其它低的情况,这个感觉可能还有另外一个问题,存在些倾斜???!!! 因为有些AGG算子,我开了代码调整了些,开了minibatch configuration.setString("table.exec.mini-batch.enabled", "true"); configuration.setString("table.exec.mini-batch.allow-latency", "10 s"); configuration.setString("table.exec.mini-batch.size", "10000"); ) <http://apache-flink.147419.n8.nabble.com/file/t670/top_reader.png> <http://apache-flink.147419.n8.nabble.com/file/t670/io.png> <http://apache-flink.147419.n8.nabble.com/file/t670/cdc_topology.png> -- Sent from: http://apache-flink.147419.n8.nabble.com/