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

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同