k8s容器中的Java进程经常自动被杀

news/2024/11/28 13:23:07/文章来源:https://www.cnblogs.com/little-nobody/p/18570745

故事背景

主角:低代码项目agile-bpm

时间:2023-08-29

背景:项目通过jenkins部署k8s容器到虚拟机,在一次部署之后,服务发生无限重启的现象,springboot项目起来后没多久(甚至有几次还没启动)就会被杀掉进程,服务宕机了一个晚上。

排查过程

查看日志

通过 kubelet logs 命令查看服务运行日志,未发现任何报错,只看到日志输出到一半就停止了输出,发现服务进入CrashBackOff,随后重启,无法定位问题。

本地调试

本地启动服务的同时,通过JProfile监控Java进程的CPU和内存使用情况,发现CPU稳定在20%左右,内存使用稳定在1~2GB,而k8s给pod分配的cpu核数是4,JVM配置的-Xms为2048m,-Xmx为4096m,排除内存泄漏和CPU过高。

查询资料

由于我没有服务器root权限,没法查看syslog,只能上网寻求答案。

 

看到这段话,我赶紧去检查了一下k8s对资源的限制,果然发现了问题!

 问题果然出在这里:k8s限制了内存资源为4G,同时JVM配置的-Xmx也是4G,-Xmx限制的只是Java堆的最大内存,还有栈、永生代、JVM本身、NIO中的DirectBuffer等资源会占用运行内存,导致容器中实际使用的内存超过了资源限制的阈值,进程被杀死。

解决方法

修改JVM参数-Xmx为2048m,重启服务后,正常运行。

参考资料

  1. https://blog.csdn.net/u012516914/article/details/109108660
  2. http://runxinzhi.com/lujiango-p-14933452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/841753.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:苹果手机免越狱群控系统的快速入门指南

对于初次接触苹果手机免越狱群控系统的用户来说,可能会感到有些困惑和不知所措。本章将提供一个详细的快速入门指南,帮助你从零开始,轻松掌握如何设置和使用这项强大的技术。免越狱群控系统概述 苹果手机免越狱群控系统是一种通过合法合规的技术手段,在不破坏iOS系统安全性…

网站模板文字内容修改,如何在网站后台或代码编辑器中修改模板文字内容

修改模板文字内容可以提升网站的信息传达效果。以下是具体步骤:登录网站后台:打开浏览器,输入网站的后台地址,例如 http://yourdomain.com/admin。 输入管理员账号和密码,点击“登录”。进入模板管理:登录后,点击顶部菜单栏中的“模板”或“主题”。 选择“模板管理”或…

网站模板文字内容修改,如何在网站后台或代码编辑器中准确修改模板文字内容

修改模板文字内容可以提升网站的信息传达效果。以下是如何准确在网站后台或代码编辑器中修改模板文字内容的步骤:登录网站后台:打开浏览器,输入网站的后台地址,例如 http://yourdomain.com/admin。 输入管理员账号和密码,点击“登录”。进入模板管理:登录后,点击顶部菜单…

本地git分支如何关联远程分支

背景 本文记录一下本地的git仓库如何与远程仓库同步,参考了网友的办法和官方的文档 如果对某些命令有疑惑,可以在命令行输入 git {command} --help 查看git的文档,例如 git remote --help ,会打开本地的帮助文件 操作步骤 首先切到本地仓库所在路径,如果git还没有初始化,…

多校A层冲刺NOIP2024模拟赛26

多校A层冲刺NOIP2024模拟赛26\(T1\) A. 随机游走 \(100pts/100pts\)在树上做临项交换即可。点击查看代码 struct node {ll nxt,to,w; }e[500010]; ll head[500010],v[500010],siz[500010],sum[500010],cnt=0,ans=0,tim=0; struct quality {ll sumt,siz,to,w; }; vector<qual…

支持4种类型的jQuery轮播图插件EasySlides

EasySlides是一款支持4种类型的jQuery轮播图插件。该jquery轮播图采用响应式设计,支持移动设备,内置有大图轮播,多图轮播,封面轮播和圆形轮播四种轮播图模式可供选择。在线演示 下载使用方法 在页面中引入jquery和jquery.easy_slides.js文件,以及样式文件jquery.easy_sl…

Avalonia 中使用 CEF 在 Ubuntu 运行崩溃分析

在 Linux 上使用 Avalonia 和 CefGlue:崩溃分析 介绍 本文主要记录了在 Avalonia 中使用 CefGlue(基于 .NET 的 Chrome 嵌入内核的封装库)时遇到的问题,目的是测试 Avalonia 的 Chrome 内核在 Linux 系统中的兼容性。然而在实际运行时,我们意外地遇到了运行崩溃的问题。环…

视频智能分析助力城市管理革新

在智慧城市建设的大潮中,视频智能分析技术正成为城市管理革新的重要推手。这项技术通过深度学习和人工智能算法,对视频数据进行实时分析和处理,为城市管理提供了前所未有的智能支持。本文将探讨视频智能分析技术在城市管理中的应用内容,以及它如何助力城市治理向更高效、更…

diffusion Policy学习

diffusion model原理 https://segmentfault.com/a/1190000043744225#item-4 https://lilianweng.github.io/posts/2021-07-11-diffusion-models/ 变分自编码器:把某图像变成向量,再用该向量生成图像。 扩散模型是一种特殊的VAE,其灵感来自于热力学:一个分布可以通过不断地添…

js写飞机大战小游戏

第一步,写一个html页面<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>飞机大战</title> <style>body { margin: 0; }canvas { display: block; background-color: #000; } </sty…

面试课程__性能测试讲解(5.1)

一、你做过性能测试吗? 方法1:做过 方法2:在公司性能是专门性能小组做的,但是我也会做 二、性能测试有哪些类型? (1)压力测试(破坏性测试) 压力测试是系统在一定饱和状态下,例如:cpu、内存、磁盘io在饱和使用情况下,不断给系统施加压力,看系统处理能力,以及系统是…

活动报名!《国产开源数据库PolarDBPG专家训练营》北京站

2024年11月29日, 由PolarDB社区联合PostgreSQL社区发起的《国产开源数据库PolarDB+PostgreSQL专家训练营》在北京站正式开课。 PostgreSQL中文社区理事长及多位核心成员汇聚上地国际人才会客厅会议室,为大家带来为期一天的技术盛宴,和大家一起分享PolarDB和PostgreSQL数据库知…