zoukankan      html  css  js  c++  java
  • 根目录空间沾满

    一、问题背景

    一台数据库服务器,突然监控告警,报根目录空间不足,于是登录机器初步查看

    df -hl

    发现根目录确实满了。

    那么肯定有大文件存在,于是使用du命令查看各个目录的大小(只显示一层目录)

    du -h --max-depth=1 /

    但是却并没有发现某个目录下有特大的文件存在。

    灵机一动,是否有文件已被删除,但是引用该文件的进程仍然活动,导致文件所占磁盘没有被释放。

    lsof | grep deleted

    结果中仍然没有发现有大文件。もっとおかしいね。。。(╯﹏╰)

    二、问题原因

    在上述调查背景下,进一步思考,在此之前做过什么操作,可能造成了一些预期之外的后果

    此时,回忆起,我曾经重新mount过数据盘

    但是数据盘是独立的磁盘,照理说是不会占用根目录所在的系统盘空间的

    于是请教了前辈,得知:

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

    然后就是验证

    umount /data

    cd /data

    ls -l

    果然,发现data目录下有一个3.5G的备份文件,这个文件把根目录磁盘占满了

    问题原因找到了,应该是之前拷贝文件时,data盘没有被mount,拷贝动作就将文件拷贝到了根目录,而重新mount数据盘之前没有检查该目录是否为空,导致了后来的根目录磁盘空间不足。

    三、总结

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

    在实际生产环境中,mount之前需要确认目录是否为空



  • 相关阅读:
    文件过滤驱动隐藏目标文件
    POJ 3345 Bribing FIPA(树形DP)
    POJ 1018 Communication System(分组背包DP)
    无用的,ring0暴力枚举进程模块
    HDOJ 3496 Watch The Movie(基本二维背包)
    栈回溯法的一个例子
    代码这样写奇丑无比...编码前期要做好规划工作啊
    多核发dpc安全inline hook
    纵我不往,知识不来学习Java第一周心得
    对“TD信息树”的使用体验
  • 原文地址:https://www.cnblogs.com/mython/p/10716360.html
Copyright © 2011-2022 走看看