美文网首页JVM
k8s 服务频繁重启问题解决

k8s 服务频繁重启问题解决

作者: 饱饱想要灵感 | 来源:发表于2023-09-20 10:06 被阅读0次

    起因: 发现k8s的服务出现频繁重启的情况, 页面上多点几次百分百必现

    推测: 内存不足引起

    于是先查看k8s服务, 使用命令kubectl get pod service-name, 果不其然

    k8s服务重启.png
    发现k8s容器的最小和最大资源都只分配了1G, 可参考博客:
    Kubernetes中requests和limits是干嘛的

    那么, 尝试着调成2G看看~

    k8s配置1G.png k8s配置2g.png

    调成2G之后, 发现不会重启了, 但是一段时间之后, 在频繁访问下, 再次出现重启的情况, 查看k8s服务, 依然是内存溢出...

    那肯定是配置还存在错误了, 再仔细一看, 发现jvm的最大堆内存设置成和容器最大内存一样了
    由于java运行时占用的内存是可能大于-Xmx堆内存的, 因此 -Xmx的值是不能等于或大于limits的, 可参考博客: jvm设置了-Xmx, 但实际运行内存还是超过了它?

    找到原因之后就好办了, 配置时只要保证JVM最大堆内存小于容器最大内存就没问题了, 于是配置如下, 问题解决
    配置原则:
    requests:memory <= -Xms = -Xmx < limits:memory
    至于为什么推荐-Xms = -Xmx, 可参考博客: jvm -Xms和-Xmx设置一样有什么好处

    k8s正确配置.png

    相关文章

      网友评论

        本文标题:k8s 服务频繁重启问题解决

        本文链接:https://www.haomeiwen.com/subject/uwksvdtx.html