• Linux df -h 显示磁盘空间满,但实际未占用满——问题分析


    问题现象:

    遇到一个问题,在系统上,告警提示磁盘空间不够,如下图所示:

    问题分析:

    1、首先使用 :du  -h  / --max-depth=1 命令查看各个目录的占用空间,试图找到占用较多空间的目录,

    2、查看 inode 的使用率,怀疑 inode 不够导致此问题,

    3、使用 lsof 检查,怀疑是不是有可能文件已被删除,但是进程还存活的场景,

    Linux 里的文件被删除后,空间没有被释放是因为在 Linux 系统中,通过 rm 或者文件管理器删除文件将会从文件系统的目录结构上解除链接 (unlink) 。

    然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

    装态为 deleted 为标记被删除,其实该文件并没有从磁盘中删除,类似windows下的回收站状态。即使将如上所示的进程全部杀掉,发现空间占用仍是 100%

    此时想起是不是由于挂载盘导致的在挂载目录时,要确认挂载的目录是否有文件,如果有文件那么挂载之后这些文件就会隐藏,此时使用 du 命令是看不到这些文件的。

    如果mount目录下原来是有文件存在的,那么该目录被 mount 之后这些文件就会被隐藏,不属于该文件系统,使用du命令是看不到的,

    解决方法,

    1、卸载挂载点:

    2、重新将磁盘挂载到新的空目录

    #mkdir  /opt/videos

    #mount  /dev/sda1  /opt/videos

    #mount  -a

  • 相关阅读:
    学习视频收集
    vscode 编译器插件
    vue2.0父子组件之间传值
    js 案例
    插件
    【转】30分钟掌握 C#6
    【初码干货】关于.NET玩爬虫这些事
    上机作业七 系统进程与计划任务管理
    客户端与服务器双向密钥对验证
    DHCP中继配置
  • 原文地址:https://www.cnblogs.com/cxq20190307/p/10918387.html
Copyright © 2020-2023  润新知