我想编写一个脚本,当我的机器将进程内存从磁盘交换到内存时,该脚本将终止我的进程。
确定这一点的最佳方法是什么?我看到 top 有 %wa,iostat 有 iowait 数据。vmstat 有交换入和交换出。
这可以用作指标吗?对我来说最好的是什么?有人可以推荐其他方法吗?
答案1
有几种方法,而且您自己已经描述了它们。
首先,查看顶部 - 查看 CPU 负载以及负载所在位置。如果大部分 CPU 时间都耗费在 %sys 上,则表明存在某种系统活动。还要检查内存使用情况,如果大部分内存处于交换状态,则持续的高 CPU %sys 意味着系统崩溃的情况。
接下来,vmstat。您知道要监视的字段。
对于历史数据,请使用 sar。再次查看消耗 CPU 时间的列。
mpstat 还将显示 CPU 使用情况。
总而言之,有很多工具,您可以使用一些 awk、cut、sort 轻松地过滤出您需要的特定字段。