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/

回复