Open xianjingfeng opened 5 months ago
@jerqi @zuston @advancedxy @rickyma PTAL. I'm quite busy recently. If anyone interested in it, welcome to pick it up.
This issue seems feasible. I'll take a look first. We need this too.
Currently, there are a few things that we can do to make blocks smaller:
spark.rss.writer.buffer.spill.size
to a higher value to make blocks larger, e.g. 1g
or 2g
.rss.client.memory.spill.ratio
less than 0.5
, e.g. 0.3
, let larger blocks spill first.spark.rss.writer.buffer.size
to a larger value refer to https://github.com/apache/incubator-uniffle/issues/1594#issuecomment-2081378887, e.g. 10m
.
Code of Conduct
Search before asking
What would you like to be improved?
Currently we have put the shuffle data into the off-heap memory in shuffle server . But I found it still occupancy a lot of heap memory. The following is the result of printing by using
jmap -histo
.From the above results, we can see that the main reason for high memory usage is that there are too many blocks. And the reason why there are so many blocks is because the blocks are very small.
How should we improve?
Introduce local allocation buffer like
MSLAB
in Hbase. Refer: https://hbase.apache.org/book.html#gcpauseAre you willing to submit PR?