• 磁盘空间满的问题


    kinux  os pc 出现磁盘空间不足问题有:

    问题原因

    导致该问题的可能原因包括:

    • 磁盘分区空间使用率达到百分之百。
    • 磁盘分区inode使用率达到百分之百。
    • 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放。
    • 挂载点覆盖:在原有文件系统的相应目录下已经存在大量文件。挂载了新磁盘后,导致使用 df 命令能统计到相关空间使用,而使用 su 命令统计不到

      处理办法

      不同的原因需要通过不同的方法解决:

    • 分区容量满
    • inode容量满
    • 修改inode数量
    • 僵尸文件分析删除
    • 挂载点覆盖

    分区容量满

    运行 df -h 查看磁盘使用 以及使用 du -sh * 查看

    inode容量满

    分析根目录下每个目录下面有多少个文件。

    for i in /*; do echo $i; find $i | wc -ldone

    df  -i  查看实际inode 命令

    命令重新建立文件系统,指定inode节点数。

    1. mkfs.ext3 /dev/xvdb -1638400

    运行以下命令查看修改后的inode节点数。

    1. dumpe2fs -/dev/xvdb | grep node

    僵尸文件分析删除

    如果磁盘和inode都没有问题,则需要查看是否存在未被清除句柄的僵死文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间。如果这些文件过多,会占用很大的磁盘空间。

    1. lsof |grep delete | more   就可以查看

    挂载点覆盖

    先取消磁盘挂载,再检查原挂载目录下的空间占用情况。

    问题2

     df 发现var 目录下没有空间可以用,但是du 发现只使用了很少的空间,这是什么问题?

    这就要看df du的实现原理了

    2. df 和du 的工作原理

    2.1 du的工作原理

    du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。

    2.2 df的工作原理

    df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。

    du和df不一致情况模拟

    常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统 目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除, 分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件
     
    • du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;
    • 而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数
    http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!! 但行好事 莫问前程 --身高体重180的胖子
  • 相关阅读:
    程序界真正的高帅富团体:Valve
    How Unreal Engine 4 Will Change The Next Games You Play【纯搬运】
    互联网“百年老店”是彻头彻尾的扯淡!
    如何关闭VS10中的IntelliSense
    发人深省周鸿祎:少功利多学习 做力所能及的事情
    FlashCS4 快捷键大全
    《1万小时成功定律——解构成功》
    通过AutoExpand调试Unreal内置数据类型
    14 Ways to Motivate Yourself
    关于C++ 动态定义数组
  • 原文地址:https://www.cnblogs.com/codestack/p/11045940.html
Copyright © 2020-2023  润新知