我有一个 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 指标。查看swap
和io
标题。
对于实际磁盘使用情况(如:空间)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 之类的工具。