每次,豆荚重新启动的速度都更快

时间:2019-05-15 20:02:20

标签: docker kubernetes

我有一个Pod,该Pod运行一个Java磁盘启动服务,该服务占用磁盘空间,并且由于内核内存(假设是inode和页面现金)增加,直到达到极限(3Gb)时,最终被OOMkilled。这大约需要2天。这是我们正在调查的单独问题 但是问题在于,第一次重新启动后,它每次都会越来越快地被OOMKilled,直到它陷入Crashloop为止。它首先持续1小时,然后越来越少。 kubectl top pods显示内存恢复正常,但容器仍然突然被杀死。

所以我的问题是:

  1. K8s向容器的主进程发送了一个终止消息,因此不替换pod本身,对吗? pod资源会怎样?是否在容器重新启动之间清理它们?
  2. 容器重新启动后,容器会如何处理?这可能是某种类型的Java泄漏文件句柄吗? Java内存非常低(低于800Mb)。 JVM在重新启动过程中被杀死,因此应该发生。
  3. 托管窗格的节点是否有可能没有释放或清除正在使用的窗格?

使用kubectl delete pod删除广告连播即可完成该工作,并且该工作将再持续2天。可能是因为节点释放了Pod并重新分配了它。

我们基本上记录了从/sys/fs/cgroup/memory文件夹中获取数据的Pod的内存值,并且在第一次重新启动后,这些值恢复正常,但仍被终止。

我们正在使用:

  • 节点中内核为3.10的CentOS
  • Java 1.8(1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12
  • 我为JVM配置了cgroup感知选项,但我们知道Java不是OOMing。

0 个答案:

没有答案