记录交换/内存使用情况-如何做?

记录交换/内存使用情况-如何做?

这是对该问题的简要介绍,但如果您只对这个问题感兴趣,我想您可以跳到最后一段。

我已经在笔记本电脑上安装了 Ubuntu Mate,并按照建议的交换空间大小(根据这个答案这一页以及我读到的一些其他内容)。根据我的用途,我认为这应该足够了(我有 5GB 的 RAM,所以我设置了 5GB 的交换空间)。但是,每当我检查交换空间时,我都会注意到它是空的。同样,我很难看到我的 RAM 使用率超过 50%。这让我认为我的交换空间可能过大(顺便说一句,我不需要总是处于休眠状态)。对我来说,唯一可以确定的方法是监控我每天使用了多少内存/交换空间。

所以问题是:我如何监控系统上的交换/内存使用情况?(这样我可以在周末打开一个文件,并能够绘制过去几天的内存和交换使用情况。)如果它已经存在(我还没有找到任何东西),我如何访问它?

附言:我宁愿避免编写在 crontab 上每 x 秒运行一次的脚本并收集这些信息。

答案1

仅在以下情况下使用交换:

  • 您的 RAM 已用完。RAM 中不活跃的内容已分页到磁盘(交换区)。
  • 您进入休眠状态。RAM 的所有内容都转储到交换区,以便在电源恢复时加载。

拥有一些swap 非常有用,但你只能需要如果您想休眠,则需要进行大交换。否则,几 GB 的保留就足够了。

5GB 是一个非常奇怪的数字。RAM 通常在规格相同的两组或三组(取决于您的系统)中运行速度最快。2×2GB 的性能可能比 1×2GB+3×1GB 的性能更好(即使第二个 RAM 更多)。

但对于长期伐木来说,有很多选择.sysstat看起来是最简单的部署后即可忘记的方法。

答案2

无需脚本。

使用 vmstat 进行此操作的数学运算相当简单。

vmstat X count其中 X 是延迟时间(秒),而 count 是统计报告的数量(行)。因此,对于 7 天(周末),如果延迟为 5 秒,那么您将有 5x12(分钟)x60(小时)x24(天)x7(周),导致计数为 604800x,每行约 80 个字符,将导致日志文件大小约为 48,384,000 字节。

执行该操作的命令是vmstat 5 604800 > swap.log当然,这意味着机器全天候运行。如果时间表不同,或者您更喜欢较小的日志文件,请根据您的要求调整计数和延迟。

答案3

vmstat命令提供了您需要的所有数值数据(可能还有更多)。您可以让它在后台运行并将其统计数据写入文件。

相关内容