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

Linux 磁盘空间占用率100%的排查

📑前言

使用 Linux 操作系统时,可能会遇到磁盘空间不足的错误,这种错误通常会导致系统运行缓慢或崩溃。本文将介绍磁盘排查的方法。⛺️

🎬作者简介:大家好,我是青衿🥇
☁️博客首页:CSDN主页放风讲故事
🌄每日一句:努力一点,优秀一点

目录

文章目录

  • 📑前言
  • **目录**
    • 系统硬盘或云盘不够
    • 查看磁盘占用
    • linux中的文件占用情况
    • docker容器日志占用清理
  • 📑文章末尾


系统硬盘或云盘不够

这里以默认使用的是40G磁盘空间的云服务器为例子

查看磁盘占用

`df -h` 

结果显示多条如下数据,这里最关键的指标就是使用百分比,这个值较高一般需要处理,或者明确知道自己项目或工作目录是哪个,就只要找对应的位置去处理即可。
在这里插入图片描述
可以看到docker容器占用过高,
overlay 40G 40 0 100% /var/lib/docker/overlay2/{id}/merged

通过df -h找文件时,可能有通过-v进行了挂载数据目录的,里面的数据可根据相应的挂载目录找到对应的容器进行清理或设置;也可能有出现许多容器产生的未通过-v挂载的目录/var/lib/docker/overlay2/{id}/merged

容器占用,包括日志占用和数据占用
容器是基于镜像打包好的一个可运行的系统。当我们在创建一个容器的时候下面两个目录就会出现数据
容器的日志占用
/var/lib/docker/containers/ID 目录所有日志都会以JSON形式保存到本机的此目录下。
容器的数据占用
/var/lib/docker/overlay2 【文件系统】基于容器文件系统保存的数据会写到本机的此目录下,

linux中的文件占用情况

查找"/"目录下所有大于100M的所有文件

 `find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr # 查找"/"目录下所有大于100M的所有文件` 

在这里插入图片描述

/var/lib/docker/containers/{container_id}/下存在数据较大的*-json.log日志文件,docker容器运行的标准输入日志。项目中已使用-v的方式挂载项目输出日志文件,因此对容器运行日志没有了需求。可以进行清理

docker容器日志占用清理

清理docker日志

echo '' > /var/lib/docker/containers/容器id/容器id-json.log

清理完日志后磁盘空间占用36%
在运行容器时进行限制

`docker run ...... --log-opt max-size=10m --log-opt max-file=1` 

发现在运行容器的时候可以对标准输入日志大小数量进行限制,以减少日志文件对存储空间的占用,以下配置分别为日志文件最大容量、最大日志文件数。
max-size 最大数值 , max-file 最大日志数,但一两个容器还好,但是如果有很多容器需要管理,这样就很不方便了,最好还是可以统一管理(全局修改)

全局修改
在docker的配置文件中进行全局修改:创建或修改文件 /etc/docker/daemon.json,并增加以下配置

{
"log-opts": {
    "max-size": "10m",
    "max-file": "1"
    }
}

解决上面提到的问题(overlay2 占用磁盘过大不释放)
继续增加以下配置

{
"log-opts": {
    "max-size": "10m",
    "max-file": "1"
    },
  "storage-driver": "overlay2",
  "storage-opts": [
         "overlay2.override_kernel_check=1"
   ]
}

最后重启docker

systemctl stop docker
systemctl start docker

📑文章末尾

在这里插入图片描述


http://www.kler.cn/a/226520.html

相关文章:

  • SpringbootWeb案例
  • SparkException: A master URL必须在配置中设置
  • Ray on ACK 实践探索之旅 - RayCluster 篇
  • 背景点击监督的时序动作定位 Background-Click Supervision for Temporal Action Localization
  • AJAX-认识URL
  • SpringBoot整理-微服务
  • vxe-table3.0的表格树如何做深层查找,返回搜索关键字的树形结构
  • PHP入门指南:起步篇
  • Flutter开发2:安装Flutter
  • [CUDA 学习笔记] Element-wise 算子优化
  • 【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)
  • 博客摘录「 MAC 安装electron 报权限错误 npm权限错误」
  • MySQL进阶45讲【11】怎么更好地给字符串字段加索引?
  • 基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)
  • 软件工程知识梳理1-可行性研究
  • 基于大数据的淘宝电子产品数据分析的设计与实现
  • LeetCode:138. 随机链表的复制之如何有效copy
  • 如何提高http连接成功率?
  • elk之安装和简单配置
  • VUE开发记录