nfs – 确定极大数据集的磁盘空间使用和文件数(任何技巧?)

长时间读者,第一次问问:

我是一名初级Linux管理员,他越来越多地支持本地和中国的大型数据集/商店. NFS存储.数据通常是大量文件夹和数据的形式.文件树具有任意名称.举一个挑战的例子,我正在使用包含数十万个嵌套目录和数千万个文件的20 TB分区.

由于这些分区/导出是共享资源,我通常必须在他们开始耗尽空间或inode时扮演侦探,以确定哪些文件夹是最大的违规者.

我发现’du -s’太慢而且手动无法完成这项工作,并希望看到其他人使用什么技巧来确定最大或最多的文件数目dirs是非常大的分区.

我唯一关心进行这些搜索的操作系统是RHEL 5/6,因此任何标准CLI Linux工具的组合都可以.

谢谢!

解决方法

如果完全可行的话,我建议将数据分成多个分区.无论您使用什么工具,扫描这么多文件都需要时间.如果它位于不同的分区上,您至少可以将问题缩小到单个分区.但这可能不是你正在做的选择.

du可能是您寻找的最佳工具.这是我如何使用它:

如果您的目录结构如下所示:

/mount/1/abc/123/456/789,/mount/1/def/stuff/morestuff/evenmorestuff
/mount/2/qwer/wer/erty

我会跑:

du -s /mount/*/* | sort -n

这将为您提供每个二级目录的总使用量,按大小排序.如果需要很长时间才能运行,请将其指向文件并在一夜之间运行.

您的输出将如下所示:

10000 /mount/1/abc
20000 /mount/1/def
23452 /mount/2/qwer

那么你只希望将它分解得足以看出问题点在哪里.

如果这是一个常见问题,您可以让它在系统不忙的时候每晚运行该命令,并将输出保存到文件中.然后,当您发现问题时,您会立即查看一些最新数据.

您可能希望查看的另一个选项是配额 – 如果这是共享存储并且它们都使用不同的用户帐户,则设置非常高的配额可能有助于防止失控进程使用大量存储空间.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...