当前位置: 首页 > news >正文

docker运行程序Killed异常排查

问题描述

我最近开发了一个C++ 多线程程序,测试没有问题,封装docker测试也没有问题,然后提交给客户了,然后在他那边测试有问题,不定时、不定位置异常中断,以前一直认为只要封装了docker就万事大吉,测试提交肯定没有问题,突然冒出这个问题,有点慌,不知道代码上再要怎么改。然后不断重跑测试,测试中发现一个异常情况,就是每次中断都有一个不起眼的Killed提示,如下图
在这里插入图片描述

问题分析

开始我以为是代码中进行了逻辑控制,搜索Killed没有找到,然后借助AI进行排查这个问题,AI回答如下:
在这里插入图片描述

解决方案(docker desktop 版本)

当然现在知道问题原因了,可以搜索各种帖子来解决这个问题。我这里是用Windows 版本的docker desktop ,直接加载镜像运行容器的,所以与Linux版本的操作有所不同,特此记录

1、开启docker监控

在控制台执行docker stats,进行运行容器资源进行监控

docker stats

监控界面不断刷新,可以看到内存、CPU占用等等信息
在这里插入图片描述
通过上图一看内存只有2G,所以肯定需要加大内存

2、增加内存

网上很多,通过在命令中增加 -m指定内存容量

docker run -itd -m 8g -v D:/:/D d7e770648fa4 /bin/bash

但是上面这个方法对于docker desktop失效,因为docker desktop最大权限来自于软件界面上的操作,所以正确打开姿势如下:
2.1 打开设置界面
在这里插入图片描述

2.2 、打开Resources设置

在这里插入图片描述
果然,就是这里设置了内存限制2G,还有交换内存1G

往后面调整好,点击Apply按钮即可(注意:这里要注意自己电脑实际内存多少,要少于自己电脑本身内存,否则后面电脑特别卡,应用成功后这部分内存直接划分到应用了,宿主电脑用不了)

docker desktop 测试监控技巧

1、选择自己运行的容器在这里插入图片描述

2、鼠标左键点进去,弹出如界面,选择stats按钮,在这里监控程序跑的一举一动在这里插入图片描述

就此!!!

http://www.lqws.cn/news/81397.html

相关文章:

  • Node.js 项目调试指南
  • SOC-ESP32S3部分:25-HTTP请求
  • 初识CSS3
  • Hadoop 大数据启蒙:初识 HDFS
  • Transformer核心技术深度解析:多头注意力机制与架构精粹
  • NodeJS全栈WEB3面试题——P8项目实战类问题(偏全栈)
  • 使用source ~/.bashrc修改环境变量之后,关闭服务器,在重启,环境变量还有吗?
  • hadoop伪分布式配置(单机)
  • docker使用sh脚本创建容器,保持容器正常运行,异常关闭后马上重启
  • 23. Merge k Sorted Lists
  • #16 学习日志软件测试
  • 并查集(上)
  • DAY 40 超大力王爱学Python
  • 【多线程初阶】内存可见性问题 volatile
  • Java线程生命周期详解
  • Promise与Async/Await:现代JavaScript异步编程的利器
  • 高效使用Map的“新”方法
  • 模块二:C++核心能力进阶(5篇)篇二:《多线程编程:C++线程池与原子操作实战》(14万字深度指南)
  • openai-java
  • Java详解LeetCode 热题 100(23):LeetCode 206. 反转链表(Reverse Linked List)详解
  • 做好 4个基本动作,拦住性能优化改坏原功能的bug
  • ps色彩平衡调整
  • github 提交失败,连接不上
  • 数值与字典解决方案二十七讲:两列数据相互去掉重复值后合并
  • 【Java Web】速通Tomcat
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • 导入典籍数据
  • Docker 镜像原理
  • React 核心概念与生态系统
  • js的时间循环的讲解