如何估计Linux上的硬盘使用情况?

我有一台Linux服务器(Debian),可以提供数千个实时连接。

很容易find我的系统的内存和CPU使用率(百分比),所以我可以预测何时需要升级这些硬件组件。

但是,我不知道如何估算硬盘使用率,我的意思是性能不是空间使用。

我的主要问题是,如何才能找出我的硬盘使用率在Linux上的比率?

但是,也许我正在问错误的问题。 如果是这样,你可以提供一些线索为什么? 我应该注意哪些关于硬盘的信息来控制情况?

编辑一点,以更有意义的一般performance…

正如您所谈论的是磁盘利用率而不是磁盘空间,您可能对诸如磁盘延迟和IO服务时间之类的值感兴趣。 因为它们代表了客户在使用磁盘时的体验,其中像吞吐量这样的东西很好理解,但它不是最终用户体验的一种度量。

如果您使用像munin这样的工具来衡量指标,那么过了一段时间,如果您的性能使用率增长具有代表性,那么您将拥有一个文件系统度量标准的logging,您可以从中估算趋势。

收集数据的一些替代品是collectd,仙人掌和各种nagios插件。

更新:因为你有在慕尼黑需要的数据 ,如果你真的想要做一个估算变化率的数字,你可以用它来说:“在2014年6月的这一天,我将需要一个新的磁盘!”。 那么我可能会想出一些直接查询rrd文件的命令行(作为一个起点),例如

 rrdtool fetch /var/lib/munin/hpl.hp.com/SERVERNAMEHERE-diskstats_utilization-cciss_c0d0_util-g.rrd AVERAGE 

您将不得不直接签出rrdtool fetch文档 ,但是我只能find您感兴趣的磁盘利用率系列的连续5分钟值之间的移动平均值。 然后你可以通过12 * 24这个数来得到每日磁盘统计速率的变化。 然而这将是相当愚蠢的。

这里是演示的一些示例图表; http://munin.ping.uio.no/ping.uio.no/colosseum.ping.uio.no/index.html#disk

您还应该安装smartd工具来捕捉即将发生的磁盘故障,我认为这已经帮助我不止一次地收到了一条消息。

iostatapt-get install sysstat )和iotopapt-get install iotop )可以帮助你了解你的硬盘正在做什么(他们正在处理多lessI / O负载,以及哪些进程正在导致它)。

vmstat也有有用的I / O指标。 看看swapio头文件。

对于实际的磁盘使用情况(如:空间), dfdu是标准的,分别为您的挂载和目录大小报告全局数据。

用钝的手工方式来获取磁盘使用情况是运行df -h 。 你会得到如下的东西:

 $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 30G 5.2G 23G 19% / none 746M 108K 746M 1% /dev none 776M 0 776M 0% /dev/shm none 776M 108K 776M 1% /var/run none 776M 0 776M 0% /var/lock none 776M 0 776M 0% /lib/init/rw 

你可以定期运行这个来获得一个使用率。 请注意,您可以运行df -k来获得更多的脚本友好的数字。 检查man df的细节。

如果您担心空间不足,请考虑安装像Monit这样的监视工具。 免费版应该作为大多数发行版的软件包提供,并且设置起来非常简单。 你会设置一个警戒级别,一旦达到90%就会发送一封电子邮件。 如果你想要很好的图表,看看穆宁等。