You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 吴先生 <15...@163.com> on 2023/03/02 11:14:31 UTC

Flink内存问题

Hi,
Flink版本:1.12
部署模式:on yarn per-job
开发方式:DataStream Api
状态后端:RocksDB
Job逻辑为一个15分钟的窗口计算,任务在运行一段时间后会出现内存使用超限,container被yarn kill的现象,目前有不少任务都会存在类似问题:
Closing TaskExecutor connection container_e02_1654567136606_1034_01_000012 because: [2023-03-02 08:12:44.794]Container [pid=11455,containerID=container_e02_1654567136606_1034_01_000012] is running 745472B beyond the 'PHYSICAL' memory limit. Current usage: 8.0 GB of 8 GB physical memory used; 10.0 GB of 40 GB virtual memory used. Killing container.
请问:
该如何排查及优化


| |
吴先生
|
|
15951914547@163.com
|

回复: Flink内存问题

Posted by 吴先生 <15...@163.com>.
感谢,我看下


| |
吴先生
|
|
15951914547@163.com
|
---- 回复的原邮件 ----
| 发件人 | Weihua Hu<hu...@gmail.com> |
| 发送日期 | 2023年3月3日 10:37 |
| 收件人 | <us...@flink.apache.org> |
| 主题 | Re: Flink内存问题 |
Hi,

针对问题 2, 可以增加下列环境变量来排除 Glibc 的问题,详情可以参考[1]

containerized.master.env.MALLOC_ARENA_MAX: 1

containerized.taskmanager.env.MALLOC_ARENA_MAX: 1

[1]
https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/memory/mem_trouble/

Best,
Weihua


On Thu, Mar 2, 2023 at 8:10 PM 吴先生 <15...@163.com> wrote:

Hi,
目前分析问题应该在堆外,大概率是managed和overhead这两部分,这两部分的内存分配比例都是默认配置,通过网上的相关资料来看有两种解决方案:
1、调大managed和overhead这两块的内存比例,
问题:调整多大合适?是否调整之后还会持续增长
2、还有另一种说法是glibc内存分配器有个64M的问题引起(这里可有深入研究),替换为jemalloc可避免
问题:有具体的知道方案吗


| |
吴先生
|
|
15951914547@163.com
|
---- 回复的原邮件 ----
| 发件人 | Shammon FY<zj...@gmail.com> |
| 发送日期 | 2023年3月2日 19:24 |
| 收件人 | <us...@flink.apache.org> |
| 主题 | Re: Flink内存问题 |
Hi


如果有搜集metrics,可以根据metrics查看一下是哪部分内存上涨导致container被kill掉;然后将上涨比较快的container内存dump一下,查看具体是哪些对象占用内存比较多

Best,
Shammon


On Thu, Mar 2, 2023 at 7:14 PM 吴先生 <15...@163.com> wrote:

Hi,
Flink版本:1.12
部署模式:on yarn per-job
开发方式:DataStream Api
状态后端:RocksDB
Job逻辑为一个15分钟的窗口计算,任务在运行一段时间后会出现内存使用超限,container被yarn
kill的现象,目前有不少任务都会存在类似问题:
Closing TaskExecutor connection container_e02_1654567136606_1034_01_000012
because: [2023-03-02 08:12:44.794]Container
[pid=11455,containerID=container_e02_1654567136606_1034_01_000012] is
running 745472B beyond the 'PHYSICAL' memory limit. Current usage: 8.0 GB
of 8 GB physical memory used; 10.0 GB of 40 GB virtual memory used. Killing
container.
请问:
该如何排查及优化


| |
吴先生
|
|
15951914547@163.com
|


Re: Flink内存问题

Posted by Weihua Hu <hu...@gmail.com>.
Hi,

针对问题 2, 可以增加下列环境变量来排除 Glibc 的问题,详情可以参考[1]

containerized.master.env.MALLOC_ARENA_MAX: 1

containerized.taskmanager.env.MALLOC_ARENA_MAX: 1

[1]
https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/memory/mem_trouble/

Best,
Weihua


On Thu, Mar 2, 2023 at 8:10 PM 吴先生 <15...@163.com> wrote:

> Hi,
> 目前分析问题应该在堆外,大概率是managed和overhead这两部分,这两部分的内存分配比例都是默认配置,通过网上的相关资料来看有两种解决方案:
> 1、调大managed和overhead这两块的内存比例,
> 问题:调整多大合适?是否调整之后还会持续增长
> 2、还有另一种说法是glibc内存分配器有个64M的问题引起(这里可有深入研究),替换为jemalloc可避免
> 问题:有具体的知道方案吗
>
>
> | |
> 吴先生
> |
> |
> 15951914547@163.com
> |
> ---- 回复的原邮件 ----
> | 发件人 | Shammon FY<zj...@gmail.com> |
> | 发送日期 | 2023年3月2日 19:24 |
> | 收件人 | <us...@flink.apache.org> |
> | 主题 | Re: Flink内存问题 |
> Hi
>
>
> 如果有搜集metrics,可以根据metrics查看一下是哪部分内存上涨导致container被kill掉;然后将上涨比较快的container内存dump一下,查看具体是哪些对象占用内存比较多
>
> Best,
> Shammon
>
>
> On Thu, Mar 2, 2023 at 7:14 PM 吴先生 <15...@163.com> wrote:
>
> Hi,
> Flink版本:1.12
> 部署模式:on yarn per-job
> 开发方式:DataStream Api
> 状态后端:RocksDB
> Job逻辑为一个15分钟的窗口计算,任务在运行一段时间后会出现内存使用超限,container被yarn
> kill的现象,目前有不少任务都会存在类似问题:
> Closing TaskExecutor connection container_e02_1654567136606_1034_01_000012
> because: [2023-03-02 08:12:44.794]Container
> [pid=11455,containerID=container_e02_1654567136606_1034_01_000012] is
> running 745472B beyond the 'PHYSICAL' memory limit. Current usage: 8.0 GB
> of 8 GB physical memory used; 10.0 GB of 40 GB virtual memory used. Killing
> container.
> 请问:
> 该如何排查及优化
>
>
> | |
> 吴先生
> |
> |
> 15951914547@163.com
> |
>

回复: Flink内存问题

Posted by 吴先生 <15...@163.com>.
Hi,
目前分析问题应该在堆外,大概率是managed和overhead这两部分,这两部分的内存分配比例都是默认配置,通过网上的相关资料来看有两种解决方案:
1、调大managed和overhead这两块的内存比例,
问题:调整多大合适?是否调整之后还会持续增长
2、还有另一种说法是glibc内存分配器有个64M的问题引起(这里可有深入研究),替换为jemalloc可避免
问题:有具体的知道方案吗


| |
吴先生
|
|
15951914547@163.com
|
---- 回复的原邮件 ----
| 发件人 | Shammon FY<zj...@gmail.com> |
| 发送日期 | 2023年3月2日 19:24 |
| 收件人 | <us...@flink.apache.org> |
| 主题 | Re: Flink内存问题 |
Hi

如果有搜集metrics,可以根据metrics查看一下是哪部分内存上涨导致container被kill掉;然后将上涨比较快的container内存dump一下,查看具体是哪些对象占用内存比较多

Best,
Shammon


On Thu, Mar 2, 2023 at 7:14 PM 吴先生 <15...@163.com> wrote:

Hi,
Flink版本:1.12
部署模式:on yarn per-job
开发方式:DataStream Api
状态后端:RocksDB
Job逻辑为一个15分钟的窗口计算,任务在运行一段时间后会出现内存使用超限,container被yarn
kill的现象,目前有不少任务都会存在类似问题:
Closing TaskExecutor connection container_e02_1654567136606_1034_01_000012
because: [2023-03-02 08:12:44.794]Container
[pid=11455,containerID=container_e02_1654567136606_1034_01_000012] is
running 745472B beyond the 'PHYSICAL' memory limit. Current usage: 8.0 GB
of 8 GB physical memory used; 10.0 GB of 40 GB virtual memory used. Killing
container.
请问:
该如何排查及优化


| |
吴先生
|
|
15951914547@163.com
|

Re: Flink内存问题

Posted by Shammon FY <zj...@gmail.com>.
Hi

如果有搜集metrics,可以根据metrics查看一下是哪部分内存上涨导致container被kill掉;然后将上涨比较快的container内存dump一下,查看具体是哪些对象占用内存比较多

Best,
Shammon


On Thu, Mar 2, 2023 at 7:14 PM 吴先生 <15...@163.com> wrote:

> Hi,
> Flink版本:1.12
> 部署模式:on yarn per-job
> 开发方式:DataStream Api
> 状态后端:RocksDB
> Job逻辑为一个15分钟的窗口计算,任务在运行一段时间后会出现内存使用超限,container被yarn
> kill的现象,目前有不少任务都会存在类似问题:
> Closing TaskExecutor connection container_e02_1654567136606_1034_01_000012
> because: [2023-03-02 08:12:44.794]Container
> [pid=11455,containerID=container_e02_1654567136606_1034_01_000012] is
> running 745472B beyond the 'PHYSICAL' memory limit. Current usage: 8.0 GB
> of 8 GB physical memory used; 10.0 GB of 40 GB virtual memory used. Killing
> container.
> 请问:
> 该如何排查及优化
>
>
> | |
> 吴先生
> |
> |
> 15951914547@163.com
> |