V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
arkilis
V2EX  ›  问与答

*nix下怎么快速得到一个一个很大目录的体积

  •  
  •   arkilis · 2013-11-19 12:40:18 +08:00 · 2767 次点击
    这是一个创建于 4030 天前的主题,其中的信息可能已经有所发展或是发生改变。
    环境:

    很多很多很多的文件,很深很深的目录,客户的主机就是这样的,没法修改.总共体积在200T左右.

    我试过很多办法:

    du -sh [dir]

    或者用自带的 Disk Analysis

    一般都要花很久. 有没有稍微有效的方法? 谢谢xxx
    10 条回复    1970-01-01 08:00:00 +08:00
    yushiro
        1
    yushiro  
       2013-11-19 12:44:57 +08:00
    那就先求总容量, 再减去其他目录的容量。
    df 减去 du 其他目录
    lch21
        2
    lch21  
       2013-11-19 13:05:28 +08:00
    自己写个程序,多线程遍历
    halfbloodrock
        3
    halfbloodrock  
       2013-11-19 13:12:19 +08:00
    指定下层级试试 du -sh dir/*/*,不会很快,但是应该比du整个目录快。。

    du和磁盘速度有关。。。。200T 应该是存储吧,看看存储上有没有直接看磁盘使用情况的方式。
    efi
        4
    efi  
       2013-11-19 13:17:31 +08:00
    我猜是挂了nfs在里面吧?du --one-file-system
    其他文件系统用df或者肯定有文件系统自带工具。
    pyKun
        5
    pyKun  
       2013-11-19 13:26:31 +08:00
    理论上不行吧

    @yushiro
    df 和 du的算法不一样,求出来的结果不能用于加减法

    @arkilis
    df的结果是“声明空间的大小” 楼主你应该需要的是这样的结果,而不是du“实际占用的大小”。另一方面,如果想知道某些文件大小,系统需要找到他们中每个文件的大小,这些值是存在inode上的,而inode和你的目录关系没有直接联系。所以结合你自己的需求从df一个磁盘来想办法吧,按理说数据规划的时候是要考虑磁盘的使用情况的,比如a类数据都放在m磁盘上,m磁盘上也只有a类数据。当然如果是分布式存储就没这样事,一般会有个接口告诉你用了多少空间了已经
    arkilis
        6
    arkilis  
    OP
       2013-11-19 13:29:44 +08:00   ❤️ 1
    @efi 不知道是不是nfs, 也没有相应的工具

    @lch21 多线程太吃资源
    reusFork
        7
    reusFork  
       2013-11-19 17:15:42 +08:00
    如果是机械磁盘,多线程有可能反而降低速度
    9hills
        8
    9hills  
       2013-11-19 17:52:46 +08:00
    瓶颈在IO,多线程也没有帮助的

    如果你需要实时的一个输出,建议你做个cron任务,定时运行下cache起来。。
    clino
        9
    clino  
       2013-11-19 21:21:50 +08:00
    我以前问过这种问题,比较靠谱的答案是如果用上 quota 的话可以很快得出来
    否则貌似没有快的办法
    cax0ch
        10
    cax0ch  
       2013-11-20 18:13:35 +08:00
    用排除把,混合使用df和du
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2829 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:00 · PVG 20:00 · LAX 04:00 · JFK 07:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.