关于内存大小设置以及预测

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

关于内存大小设置以及预测

Kyle Zhang
Hi all,
  最近也是遇到比较常见的内存溢出的错误OutOfMemoryError: Java heap space,JM:1g
TM:2g,简单粗暴的设置成2g、4g就可以运行了,
INFO  [] - Loading configuration property:
cluster.termination-message-path, /flink/log/termination.log
INFO  [] - Final TaskExecutor Memory configuration:
INFO  [] -   Total Process Memory:          3.906gb (4194304000 bytes)
INFO  [] -     Total Flink Memory:          3.266gb (3506438138 bytes)
INFO  [] -       Total JVM Heap Memory:     1.508gb (1619001315 bytes)
INFO  [] -         Framework:               128.000mb (134217728 bytes)
INFO  [] -         Task:                    1.383gb (1484783587 bytes)
INFO  [] -       Total Off-heap Memory:     1.758gb (1887436823 bytes)
INFO  [] -         Managed:                 1.306gb (1402575276 bytes)
INFO  [] -         Total JVM Direct Memory: 462.400mb (484861547 bytes)
INFO  [] -           Framework:             128.000mb (134217728 bytes)
INFO  [] -           Task:                  0 bytes
INFO  [] -           Network:               334.400mb (350643819 bytes)
INFO  [] -     JVM Metaspace:               256.000mb (268435456 bytes)
INFO  [] -     JVM Overhead:                400.000mb (419430406 bytes)

请问有没有指标能够事前估算JM、TM需要的内存大小?

Best
Reply | Threaded
Open this post in threaded view
|

Re: 关于内存大小设置以及预测

guangyong yang
可以使用jvm自带命令jstat或通过 ManagementFactory类 监控TaskManager所在主机的堆/元空间内存、GC收集等一些信息

Kyle Zhang <[hidden email]> 于2020年10月16日周五 下午5:34写道:

> Hi all,
>   最近也是遇到比较常见的内存溢出的错误OutOfMemoryError: Java heap space,JM:1g
> TM:2g,简单粗暴的设置成2g、4g就可以运行了,
> INFO  [] - Loading configuration property:
> cluster.termination-message-path, /flink/log/termination.log
> INFO  [] - Final TaskExecutor Memory configuration:
> INFO  [] -   Total Process Memory:          3.906gb (4194304000 bytes)
> INFO  [] -     Total Flink Memory:          3.266gb (3506438138 bytes)
> INFO  [] -       Total JVM Heap Memory:     1.508gb (1619001315 bytes)
> INFO  [] -         Framework:               128.000mb (134217728 bytes)
> INFO  [] -         Task:                    1.383gb (1484783587 bytes)
> INFO  [] -       Total Off-heap Memory:     1.758gb (1887436823 bytes)
> INFO  [] -         Managed:                 1.306gb (1402575276 bytes)
> INFO  [] -         Total JVM Direct Memory: 462.400mb (484861547 bytes)
> INFO  [] -           Framework:             128.000mb (134217728 bytes)
> INFO  [] -           Task:                  0 bytes
> INFO  [] -           Network:               334.400mb (350643819 bytes)
> INFO  [] -     JVM Metaspace:               256.000mb (268435456 bytes)
> INFO  [] -     JVM Overhead:                400.000mb (419430406 bytes)
>
> 请问有没有指标能够事前估算JM、TM需要的内存大小?
>
> Best
>
Reply | Threaded
Open this post in threaded view
|

Re: 关于内存大小设置以及预测

Xintong Song
事前估算是比较难的,不同作业差别可能会很大。
如果只是 heap oom 的话,没必要调大整个 JM/TM 的内存,可以只针对 heap 部分进行调整。
可以参考一下这篇文档 [1]。

Thank you~

Xintong Song


[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/ops/memory/mem_tuning.html

On Sun, Oct 18, 2020 at 8:54 PM guangyong yang <[hidden email]>
wrote:

> 可以使用jvm自带命令jstat或通过 ManagementFactory类 监控TaskManager所在主机的堆/元空间内存、GC收集等一些信息
>
> Kyle Zhang <[hidden email]> 于2020年10月16日周五 下午5:34写道:
>
> > Hi all,
> >   最近也是遇到比较常见的内存溢出的错误OutOfMemoryError: Java heap space,JM:1g
> > TM:2g,简单粗暴的设置成2g、4g就可以运行了,
> > INFO  [] - Loading configuration property:
> > cluster.termination-message-path, /flink/log/termination.log
> > INFO  [] - Final TaskExecutor Memory configuration:
> > INFO  [] -   Total Process Memory:          3.906gb (4194304000 bytes)
> > INFO  [] -     Total Flink Memory:          3.266gb (3506438138 bytes)
> > INFO  [] -       Total JVM Heap Memory:     1.508gb (1619001315 bytes)
> > INFO  [] -         Framework:               128.000mb (134217728 bytes)
> > INFO  [] -         Task:                    1.383gb (1484783587 bytes)
> > INFO  [] -       Total Off-heap Memory:     1.758gb (1887436823 bytes)
> > INFO  [] -         Managed:                 1.306gb (1402575276 bytes)
> > INFO  [] -         Total JVM Direct Memory: 462.400mb (484861547 bytes)
> > INFO  [] -           Framework:             128.000mb (134217728 bytes)
> > INFO  [] -           Task:                  0 bytes
> > INFO  [] -           Network:               334.400mb (350643819 bytes)
> > INFO  [] -     JVM Metaspace:               256.000mb (268435456 bytes)
> > INFO  [] -     JVM Overhead:                400.000mb (419430406 bytes)
> >
> > 请问有没有指标能够事前估算JM、TM需要的内存大小?
> >
> > Best
> >
>