服务器内存占用陡增,部分应用程序无故被停,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

相关文章

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

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

Spring Cache注解@Cacheable的九个属性详解

《SpringCache注解@Cacheable的九个属性详解》在@Cacheable注解的使用中,共有9个属性供我们来使用,这9个属性分别是:value、cacheNames、key、key... 目录1.value/cacheNames 属性2.key属性3.keyGeneratjavascriptor

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA