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

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

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

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

但是,我不知道如何估计硬盘的使用情况,我指的是性能而不是空间使用情况。

我的主要问题是,如何才能知道 Linux 上我的硬盘使用率是多少?

但是,也许我问错了问题。如果是这样,你能给出一些提示吗?我应该了解有关硬盘的哪些信息才能控制局面?

答案1

进行了一些编辑,使其与总体表现更相关……

由于您谈论的是磁盘利用率而不是磁盘空间,因此您可能对以下值感兴趣:磁盘延迟, 和IO 服务时间s. 因为它们代表了客户在使用磁盘时的体验,而吞吐量之类的东西虽然很好了解,但它并不是衡量最终用户体验的标准。

如果你使用以下工具来获取指标穆宁,过一段时间后,您将获得文件系统指标记录,您可以从中估计趋势,假设您的性能使用率增加具有代表性。

一些收集数据的替代方法是 collectd、cacti 和各种 nagios 插件。

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

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

你必须检查 rrdtool直接获取文档,但我只会找到您感兴趣的磁盘利用率系列的连续 5 分钟值之间的差异的移动平均值。然后您可以将该数字乘以 12*24 以获得每日磁盘统计率变化。然而,这将是相当愚蠢的。

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

您还应该安装 smartd 工具来捕获任何即将发生的磁盘故障,我认为它不止一次通过消息帮助我。

答案2

iostat( apt-get install sysstat) 和iotop( apt-get install iotop) 将让您了解您的驱动器正在做什么(它们处理了多少 I/O 负载,以及哪些进程导致了它)。

vmstat也有有用的 I/O 指标。查看swapio标题。

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

答案3

获取磁盘使用情况的一种简单、手动的方法是运行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% 左右,它就会发送电子邮件。如果您想要漂亮的图表,可以看看 Munin 之类的工具。

相关内容