比较文件系统的空间使用情况随时间变化的情况。

5
有没有一种好的图形方式来表示Linux/Unix文件系统中磁盘使用情况随时间的变化呢?
让我详细说明一下:有几种很好的方法来表示文件系统中的磁盘使用情况。我对总空间使用量等汇总统计信息(如du(1)所示)不感兴趣,而是更倾向于高级交互/可视化工具,如ncdu、gdmap、filelight或baobab,这些工具可以让我了解空间被用在了哪里。
从技术角度来看,我认为最佳方法是使用矩形树状图(如gdmap中提供的),因为它更好地利用了可视空间。例如,filelight使用的圆形方法无法有效地表示庞大的层次结构,并且人类如何从外环表示中考虑逐渐增加的面积也是存在问题的。看起来漂亮,但仅此而已。
树状图非常适合在文件系统中获取当前快照的磁盘使用情况,但我希望能有类似的东西来查看磁盘使用情况随时间的演变。
我的当前解决方案非常简单:我使用“ncdu -o”随时间转储文件系统使用状态,然后使用两个ncdu实例并排比较它们。这非常低效,但也能胜任任务。不过我希望有更加直观的方法。
所有相关信息都可以使用以下命令转储:
find [dir] -printf "%P\t%s\n"

我做了一个糟糕的hack来加载gdmap中的状态信息,这样我就可以使用两个gdmap实例。但仍然不太理想,因为treemap将把总分配空间适合相同的矩形中。因此,你无法真正确定相同的区域是否等同于更多或更少的空间。如果两个大目录成比例增长,它们不会改变可视化。
我需要比那更好的东西。显然,我不能在简单的线图中绘制累计目录大小,因为我会有太多的目录。
我希望有类似于treemap的东西,其中可能使用某些颜色地图表示大小增加/减少。但是,由于treemap将显示单个文件而不是目录,因此不清楚如何对已由于新/删除文件而增长/缩小的分配空间的目录进行颜色映射。
有哪些可视化技术可以用来查看随时间分配的空间的演变,这些技术考虑了整个底层树?
更详细地说,在一个方形化的treemap中,整个分配空间按文件大小成比例地划分,每个目录在其中逻辑地聚集了分配空间。因此,我们不“看到”目录,我们看到其内容所占比例的空间。
我们如何扩展和/或改进可视化,以便查看分配空间已移动到treemap的不同区域?

我认为你的第一个问题是你不知道自己在寻找什么。你想要提前知道文件系统何时会满吗?你想知道最大的文件是什么吗?哪个文件夹的大小变化最剧烈?也许你应该问问自己,你想用这些信息解决什么问题。 - Aaron Digulla
这个问题似乎不适合在此讨论,因为它应该在Unix&Linux StackExchange上讨论。 - iruvar
一些小的澄清:我要找的正是标题上所说的。我想看到文件系统中分配空间随时间的演变情况。我不是在寻找特定工具或查看特定目录/文件的演变。我更感兴趣的是可视化技术和/或算法,以正确地颜色映射树状图(例如)并使用简单的脚本来实现这一点。 - tardis
我改进了问题,使其更具体。 - tardis
为什么不使用定时的cron作业将数据(来自du或其他)附加到CSV文件中,并在具有图形能力的电子表格中打开它,例如gnumeric、mtcelledit、siag、oleo、sc/xspread? - technosaurus
因为我已经有了数据。问题在于如何将其可视化/总结。 - tardis
1个回答

0

你可以使用Cacti来实现这个功能。
你需要在你的机器上安装SNMP守护进程并在本地或任何其他计算机上安装Cacti(免费软件)来监控你的Linux机器。

http://blog.securactive.net/wp-content/uploads/2012/12/cacti_performance_vision1.png

您可以监控您的LINUX操作系统的网络接口、任何分区的空间以及许多其他参数。
  1. apt-get install cacti
  2. vim /etc/snmp/snmpd.conf

    在第42行左右添加以下内容:

    view   systemonly  included   .1.3.6.1
    

    保存并重启snmpd守护进程

  3. 进入cacti配置页面,尝试发现您的Linux机器。


请注意,Cacti并没有比简单的目录或分区空间使用情况摘要更好的功能。我希望有一种可视化方式,可以显示随着时间推移整体分配空间的变化情况,可能在多个时间点上。 - tardis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接