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

 更新时间:2024年02月04日 08:51:52   作者:放风讲故事  
使用 Linux 操作系统时,可能会遇到磁盘空间不足的错误,这种错误通常会导致系统运行缓慢或崩溃,本文将介绍磁盘排查的方法,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下

系统硬盘或云盘不够

这里以默认使用的是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

最后

到此这篇关于Linux磁盘空间占用率100%的排查方法的文章就介绍到这了,更多相关Linux磁盘排查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解ubuntu双系统启动时卡死解决办法

    详解ubuntu双系统启动时卡死解决办法

    这篇文章主要介绍了详解ubuntu双系统启动时卡死解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 历史Linux镜像处理及修复方案

    历史Linux镜像处理及修复方案

    在本文中我们给大家整理了关于如何对于历史Linux镜像的问题进行修复处理的相关内容,有需要的朋友们参考下。
    2018-09-09
  • 浅谈Linux的库文件

    浅谈Linux的库文件

    这篇文章主要介绍了Linux的库文件的相关内容,小编觉得很不错,在这里分享给大家。希望给大家一个参考。
    2017-10-10
  • linux中xargs命令的各种使用技巧

    linux中xargs命令的各种使用技巧

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。下面这篇文章主要给大家介绍了关于linux中xargs命令用法的相关资料,需要的朋友可以参考借鉴,下面来跟着小编一起看看吧。
    2017-05-05
  • Centos8使用Squid配置代理服务器的详细过程

    Centos8使用Squid配置代理服务器的详细过程

    这篇文章主要介绍了Centos8使用Squid配置简单的代理服务器,安装过程中需要创建新账户并将其设置为管理账户,设置网络连接,简单的配置过程跟随小编一起看看吧
    2022-01-01
  • CentOS 配置无密码登录的实现

    CentOS 配置无密码登录的实现

    这篇文章主要介绍了CentOS 配置无密码登录的实现的相关资料,需要的朋友可以参考下
    2017-06-06
  • Ubuntu18.04下安装配置SSH服务的方法步骤

    Ubuntu18.04下安装配置SSH服务的方法步骤

    这篇文章主要介绍了Ubuntu18.04下安装配置SSH服务的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Ubuntu日志文件清空的三种方式

    Ubuntu日志文件清空的三种方式

    这篇文章主要介绍了三种清空日志文件的方法:重定向符号、truncate命令和删除再创建文件,其中,重定向符号和truncate命令是最快的清空方式,下面小编将通过图文结合的方式给大家详细的讲解一下,需要的朋友可以参考下
    2025-04-04
  • Centos 6.5环境实现本地局域网搭建YUM的方法【基于HTTP】

    Centos 6.5环境实现本地局域网搭建YUM的方法【基于HTTP】

    这篇文章主要介绍了Centos 6.5环境实现本地局域网搭建YUM的方法,较为详细的分析了CentOS6.5基于HTTP实现本地局域网搭建YUM的具体步骤、相关命令与操作注意事项,需要的朋友可以参考下
    2018-04-04
  • Linux如何查看历史命令执行时间

    Linux如何查看历史命令执行时间

    这篇文章主要介绍了Linux如何查看历史命令执行时间的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07

最新评论