flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-3322) MemoryManager creates too much GC pressure with iterative jobs
Date Wed, 07 Sep 2016 12:04:20 GMT

    [ https://issues.apache.org/jira/browse/FLINK-3322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15470419#comment-15470419

ramkrishna.s.vasudevan commented on FLINK-3322:

I am able to handle cases for the iterative jobs. But when we go to the LargeRecordHandlers
then it is much more trickier. Checking that part Will get back on that.

Currently the design is that the MemoryAllocator will be passed on to the Sorters and the
memory allocator will have pre created memory segments. If the  memory allocator is created
by Iterative tasks then we ensure that such segments are not directly released to memory manager
and retain them till the iterative tasks receive termination signal.
In normal batch task cases - the memory allocators created are not to be kept for further
iterations and hence we close them out.
The sorters create read buffers, write buffers and large buffers. These are all static based.
But inside large record handler we have some dynamic way to decide the number of records needed
for keys and records.

Will get back on this. Any suggestions/feedbacks here?

> MemoryManager creates too much GC pressure with iterative jobs
> --------------------------------------------------------------
>                 Key: FLINK-3322
>                 URL: https://issues.apache.org/jira/browse/FLINK-3322
>             Project: Flink
>          Issue Type: Bug
>          Components: Local Runtime
>    Affects Versions: 1.0.0
>            Reporter: Gabor Gevay
>            Priority: Critical
>             Fix For: 1.0.0
>         Attachments: FLINK-3322.docx
> When taskmanager.memory.preallocate is false (the default), released memory segments
are not added to a pool, but the GC is expected to take care of them. This puts too much pressure
on the GC with iterative jobs, where the operators reallocate all memory at every superstep.
> See the following discussion on the mailing list:
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/Memory-manager-behavior-in-iterative-jobs-tt10066.html
> Reproducing the issue:
> https://github.com/ggevay/flink/tree/MemoryManager-crazy-gc
> The class to start is malom.Solver. If you increase the memory given to the JVM from
1 to 50 GB, performance gradually degrades by more than 10 times. (It will generate some lookuptables
to /tmp on first run for a few minutes.) (I think the slowdown might also depend somewhat
on taskmanager.memory.fraction, because more unused non-managed memory results in rarer GCs.)

This message was sent by Atlassian JIRA

View raw message