flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yun Tang <myas...@live.com>
Subject Re: 关于在读和写频率都很高的情况下怎么优化rocksDB
Date Wed, 26 Feb 2020 18:07:44 GMT
Hi

你的单节点rocksDB state size多大呢?(可以通过打开相关metrics [1] 或者登录到RocksDB所在机器观察一下RocksDB目录的size)
造成反压是如何确定一定是rocksDB 状态大导致的呢?看你的IO情况绝对值很大,但是百分比倒不是很高。是否用jstack观察过TM的进程,看一下是不是task主线程很容易打在RocksDB的get等读操作上。

RocksDB本质上还是面向磁盘的kv存储,如果是每次读写都更新的话,block
cache发挥的作用会很有限。如果达到磁盘瓶颈,需要考虑提高磁盘性能或者想办法降低单个rocksDB实例的state大小。

最后,1.10 默认开启了RocksDB的内存限制功能,你这里提到的性能反压包括在之前版本上试验过么?

[1] https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html#state-backend-rocksdb-metrics-total-sst-files-size

祝好
唐云

________________________________
From: claylin <1012539884@qq.com>
Sent: Wednesday, February 26, 2020 23:27
To: user-zh <user-zh@flink.apache.org>
Subject: 关于在读和写频率都很高的情况下怎么优化rocksDB

Hi 大家好:这边遇到一个有关rocksDB优化的问题,我这里系统平均tps为10w,几乎每条数据都会出发读写rocksDB,下面是我用sar
-dp 命令统计的io情况:
Average:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DEV&nbsp; &nbsp; &nbsp;
&nbsp;tps&nbsp; rd_sec/s&nbsp; wr_sec/s&nbsp; avgrq-sz&nbsp; avgqu-sz&nbsp;
&nbsp; &nbsp;await&nbsp; &nbsp; &nbsp;svctm&nbsp; &nbsp; &nbsp;%util
Average:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sda&nbsp; &nbsp; 285.36&nbsp;
&nbsp;2152.91&nbsp; 88322.99&nbsp; &nbsp; 317.06&nbsp; &nbsp; &nbsp;21.48&nbsp;
&nbsp; &nbsp;75.27&nbsp; &nbsp; &nbsp; 0.58&nbsp; &nbsp; &nbsp;16.60
,运行时间长了就会严重造成反压,我按照这里https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/large_state_tuning.html#tuning-rocksdb做了些调优,譬如增大Manager
Memory,增大rocksDB的flush和compact线程数等,但还是一样,时间一长,状态变大就会造成反压,我也做了state的过期处理。


这个问题困扰好久了,大家有什么好的优化方案吗。
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message