服务器内存占用陡增,部分应用程序无故被停,docker-cache罪魁祸首

本文主要是介绍服务器内存占用陡增,部分应用程序无故被停,docker-cache罪魁祸首,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

一、背景

告警提示:服务器内存占用陡增,部分应用程序无故被停。
查看内存占用,发现只剩下几百M了。

[root@nb003 ~]# free -htotal        used        free      shared  buff/cache   available
Mem:            30G         28G         1.5G        6.4M        1.2G         298M
Swap:            0B          0B          0B

二、分析

2.1 首先查看内存占用前n的进程

ps aux --sort=-rss | head -n 5
[root@nb003 ~]# ps aux --sort=-rss | head -n 5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     22921  0.0 15.5 5320032 5026548 ?     Ssl  Jul18   7:15 docker-cache -B --donate-level 1 -o pool.minexmr.com:443 -u 85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh -k --tls -t 1 --rig-id limpid_peristeronic -l /var/log/utmp.log
root     22116  0.0 15.5 5319616 5026060 ?     Ssl  Jul18   7:13 docker-cache -B --donate-level 1 -o pool.minexmr.com:443 -u 85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh -k --tls -t 1 --rig-id risible_oxter -l /var/log/utmp.log
root     22642  0.0 15.5 5319252 5025652 ?     Ssl  Jul18   7:14 docker-cache -B --donate-level 1 -o pool.minexmr.com:443 -u 85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh -k --tls -t 1 --rig-id limpid_amatorculist -l /var/log/utmp.log
root      7518  0.0  9.4 3360092 3051712 ?     Ssl  Aug02   4:45 docker-cache -B --donate-level 1 -o pool.minexmr.com:443 -u 85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh -k --tls -t 1 --rig-id adroit_hirquiticke -l /var/log/utmp.log

如上,这里查看前5,发现占用内存的是docker-cache程序,且包含不认识的pool.minexmr.com:443 ,也就是说docker启动了一些程序导致docker-cache的占用。故查看docker进程:

[root@nb003 docker]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED          STATUS          PORTS      NAMES
c416000851a3   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                 zealous_hirquiticke
d88b5657fdbd   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                 fecund_hirquiticke
1c49df2a1bf7   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                 boorish_amatorculist
7e5635d6c85e   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                  limpid_peristeronic
e1587fb89bfe   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                  baleful_grommet
1ec6d22b2e99   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                  verdant_grommet
aae2b482e78f   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                   fecund_peristeronic
c993e1383cca   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                   risible_oxter
7834f3dfd820   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                   limpid_amatorculist
c65077c5028e   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                   verdant_peristeronic
96588b7cee43   ubuntu:18.04                               "/bin/bash"              17 months ago    Up 5 weeks                   limpid_quire

如上,发现一些不认识的ubuntu:18.04 容器被启动了。

三、处理

3.1 杀掉docker-cache进程

[root@nb003 docker]# kill -9 22921  22116 22642 7518
[root@nb003 docker]#

3.2 停止并删除无关docker容器

先docker stop 容器id停止,再docker rm 容器id删除

[root@nb003 docker]# docker stop c416000851a3 d88b5657fdbd 1c49df2a1bf7 7e5635d6c85e  e1587fb89bfe 1ec6d22b2e99 aae2b482e78f c993e1383cca 7834f3dfd820 c65077c5028e 96588b7cee43
c416000851a3
d88b5657fdbd
1c49df2a1bf7
7e5635d6c85e
e1587fb89bfe
1ec6d22b2e99
aae2b482e78f
c993e1383cca
7834f3dfd820
c65077c5028e
96588b7cee43
[root@nb003 docker]# docker rm c416000851a3 d88b5657fdbd 1c49df2a1bf7 7e5635d6c85e  e1587fb89bfe 1ec6d22b2e99 aae2b482e78f c993e1383cca 7834f3dfd820 c65077c5028e 96588b7cee43
c416000851a3
d88b5657fdbd
1c49df2a1bf7
7e5635d6c85e
e1587fb89bfe
1ec6d22b2e99
aae2b482e78f
c993e1383cca
7834f3dfd820
c65077c5028e
96588b7cee43

3.3 删除对应的docker镜像

查找到对应镜像,并删除(docker rmi 镜像id)

[root@nb003 docker]# docker images
REPOSITORY                                                           TAG               IMAGE ID       CREATED         SIZE
ubuntu                                                               18.04             b89fba62bc15   18 months ago   63.1MB
[root@nb003 docker]# docker rmi b89fba62bc15 
Untagged: ubuntu:18.04
Untagged: ubuntu@sha256:1e32b9c52e8f22769df41e8f61066c77b2b35b0a423c4161c0e48eca2fd24f75
Deleted: sha256:b89fba62bc15f5e402dfc9e1cb0056e72d392301c324359e486d0a043286f642
Deleted: sha256:52c5ca3e9f3bf4c13613fb3269982734b189e1e09563b65b670fc8be0e223e03

四、结果

4.1 再次查看内存占用前5的进程

发现已经是java程序了。且该程序是认识的。
在这里插入图片描述

4.2 查看内存情况

发现可用内存已恢复

[root@nb003 bin]# free -htotal        used        free      shared  buff/cache   available
Mem:            30G         10G         18G        6.3M        1.4G         19G
Swap:            0B          0B          0B

4.3 查看docker情况

发现 docker ps 无不认识容器,且docker images 无不认识镜像

END

这篇关于服务器内存占用陡增,部分应用程序无故被停,docker-cache罪魁祸首的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109955

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4