Hi 我的作业是运行在1.10.1, 使用的是event time ,没有开启checkPoint。每当作业重启一次,container memory usage会上涨2G,每重启一次就会上涨一些内存直到被OS kill。 历史数据的清理是在新event time到达之后调用 WindowOperator#onEventTime() 的clearAllState实现清理,如果作业重启,又没有开启checkpoint,尚未被处理的历史数据是否一直残留在内存中无法清理? 是否有哪位大佬可以帮忙解惑? | | a511955993 | | 邮箱:[hidden email] | 签名由 网易邮箱大师 定制 |
这种现象只会出现在on rocksdb中。
| | a511955993 | | 邮箱:[hidden email] | 签名由 网易邮箱大师 定制 在2020年07月03日 11:21,SmileSmile 写道: Hi 我的作业是运行在1.10.1, 使用的是event time ,没有开启checkPoint。每当作业重启一次,container memory usage会上涨2G,每重启一次就会上涨一些内存直到被OS kill。 历史数据的清理是在新event time到达之后调用 WindowOperator#onEventTime() 的clearAllState实现清理,如果作业重启,又没有开启checkpoint,尚未被处理的历史数据是否一直残留在内存中无法清理? 是否有哪位大佬可以帮忙解惑? | | a511955993 | | 邮箱:[hidden email] | 签名由 网易邮箱大师 定制 |
理论上作业重启后,会释放内存,这里的问题从描述看,重启后有内存没有释放。能否在重启后 dump 一下内存看看呢?
或者你这个问题能够完全重现吗?可否告知一下如何复现这个问题呢 Best, Congxian SmileSmile <[hidden email]> 于2020年7月3日周五 下午12:23写道: > 这种现象只会出现在on rocksdb中。 > > > > > | | > a511955993 > | > | > 邮箱:[hidden email] > | > > 签名由 网易邮箱大师 定制 > > 在2020年07月03日 11:21,SmileSmile 写道: > > Hi > > 我的作业是运行在1.10.1, 使用的是event time ,没有开启checkPoint。每当作业重启一次,container memory > usage会上涨2G,每重启一次就会上涨一些内存直到被OS kill。 > > > 历史数据的清理是在新event time到达之后调用 WindowOperator#onEventTime() > 的clearAllState实现清理,如果作业重启,又没有开启checkpoint,尚未被处理的历史数据是否一直残留在内存中无法清理? > > > 是否有哪位大佬可以帮忙解惑? > > | | > a511955993 > | > | > 邮箱:[hidden email] > | > > 签名由 网易邮箱大师 定制 |
作业运行在k8s上,这个现象可以重现,目前我这边有多份数据join的作业基本都会有这个问题。步骤如下:
1. 使用eventtime,水位线设置为数据时间-3分钟,状态使用rocksdb,不开启checkpoint,设置内存limit 2. 作业运行一段时间。 3. kill 其中一个pod,作业fail 4. k8s自动拉起该pod,观察其他pod的内存使用,会上涨。运行一段时间然后很容易超过limit被os kill 5. 陷入被重复kill的死循环。 解决方法:销毁集群,重构即可。 观察过heap的内存,没有问题。 被os kill怀疑是offheap超用,offheap没有正常释放。 有一个疑问,如果没有开启ck,作业恢复后是重新开始的,重启前的旧数据在rocksdb中是在如何清理的呢? | | a511955993 | | 邮箱:[hidden email] | 签名由 网易邮箱大师 定制 在2020年07月03日 14:02,Congxian Qiu 写道: 理论上作业重启后,会释放内存,这里的问题从描述看,重启后有内存没有释放。能否在重启后 dump 一下内存看看呢? 或者你这个问题能够完全重现吗?可否告知一下如何复现这个问题呢 Best, Congxian SmileSmile <[hidden email]> 于2020年7月3日周五 下午12:23写道: > 这种现象只会出现在on rocksdb中。 > > > > > | | > a511955993 > | > | > 邮箱:[hidden email] > | > > 签名由 网易邮箱大师 定制 > > 在2020年07月03日 11:21,SmileSmile 写道: > > Hi > > 我的作业是运行在1.10.1, 使用的是event time ,没有开启checkPoint。每当作业重启一次,container memory > usage会上涨2G,每重启一次就会上涨一些内存直到被OS kill。 > > > 历史数据的清理是在新event time到达之后调用 WindowOperator#onEventTime() > 的clearAllState实现清理,如果作业重启,又没有开启checkpoint,尚未被处理的历史数据是否一直残留在内存中无法清理? > > > 是否有哪位大佬可以帮忙解惑? > > | | > a511955993 > | > | > 邮箱:[hidden email] > | > > 签名由 网易邮箱大师 定制 |
从现象看,应该是有内存泄漏,你需要看一下这些内存都是啥,然后才好定位是哪里的问题
checkpoint 是指 state 的一个快照,rocksdb 中存的是 state。理论上来说,作业 fail 了,之前 rocksdb 中的数据就没有了。新的作业是会使用新的 RocksDB Best, Congxian SmileSmile <[hidden email]> 于2020年7月3日周五 下午2:15写道: > 作业运行在k8s上,这个现象可以重现,目前我这边有多份数据join的作业基本都会有这个问题。步骤如下: > 1. 使用eventtime,水位线设置为数据时间-3分钟,状态使用rocksdb,不开启checkpoint,设置内存limit > 2. 作业运行一段时间。 > 3. kill 其中一个pod,作业fail > 4. k8s自动拉起该pod,观察其他pod的内存使用,会上涨。运行一段时间然后很容易超过limit被os kill > 5. 陷入被重复kill的死循环。 > > 解决方法:销毁集群,重构即可。 > > 观察过heap的内存,没有问题。 被os kill怀疑是offheap超用,offheap没有正常释放。 > > 有一个疑问,如果没有开启ck,作业恢复后是重新开始的,重启前的旧数据在rocksdb中是在如何清理的呢? > > > > | | > a511955993 > | > | > 邮箱:[hidden email] > | > > 签名由 网易邮箱大师 定制 > > 在2020年07月03日 14:02,Congxian Qiu 写道: > 理论上作业重启后,会释放内存,这里的问题从描述看,重启后有内存没有释放。能否在重启后 dump 一下内存看看呢? > 或者你这个问题能够完全重现吗?可否告知一下如何复现这个问题呢 > > Best, > Congxian > > > SmileSmile <[hidden email]> 于2020年7月3日周五 下午12:23写道: > > > 这种现象只会出现在on rocksdb中。 > > > > > > > > > > | | > > a511955993 > > | > > | > > 邮箱:[hidden email] > > | > > > > 签名由 网易邮箱大师 定制 > > > > 在2020年07月03日 11:21,SmileSmile 写道: > > > > Hi > > > > 我的作业是运行在1.10.1, 使用的是event time ,没有开启checkPoint。每当作业重启一次,container memory > > usage会上涨2G,每重启一次就会上涨一些内存直到被OS kill。 > > > > > > 历史数据的清理是在新event time到达之后调用 WindowOperator#onEventTime() > > 的clearAllState实现清理,如果作业重启,又没有开启checkpoint,尚未被处理的历史数据是否一直残留在内存中无法清理? > > > > > > 是否有哪位大佬可以帮忙解惑? > > > > | | > > a511955993 > > | > > | > > 邮箱:[hidden email] > > | > > > > 签名由 网易邮箱大师 定制 > |
Free forum by Nabble | Edit this page |