【问题标题】:Linux: get amount of memory swapped in/out over a time periodLinux:获取一段时间内换入/换出的内存量
【发布时间】:2013-08-07 08:58:34
【问题描述】:

是否有一种(简单(?))方法来获取在特定时间内移入/移出交换的数据量?也许,要么整合所有流程和时间,要么整合特定流程和时间?

故事:我有一台倾向于交换的机器。但是,我不知道是否“积极”使用了交换。即,如果它不断交换,或者假设只是没有真正使用的共享库在一段时间后被交换掉,并且最终在 mem 中发生“活动”内存使用。

因此,我正在寻找一种方法来安慰自己,交换使用可能并不严重......

干杯并感谢您的想法, 托马斯

【问题讨论】:

  • 如果有办法,它可能在/proc/
  • 是的,我也在考虑通过 /proc,但这可能不会抓住任何短暂的分叉。 vmstat 还至少显示了自启动以来的总分页进/出,因此我可以将特定时间之间的差异作为快速修复。

标签: linux memory monitoring swap


【解决方案1】:

这可以通过 SystemTap 相对容易地完成(如果您知道内核 MM 子系统)。 您需要知道执行 swapin/swapout、创建相应探针和从探针递增的两个计数器的函数的名称。最后,您需要一个每 N 秒触发一次的计时器,转储当前计数器并重置它们。

【讨论】:

    【解决方案2】:

    这是我使用 vmstat 获取在调用之间换入/换出的总页数的临时解决方案

    #!/bin/sh
    OLDSWAPPEDIN=$SWAPPEDIN
    OLDSWAPPEDOUT=$SWAPPEDOUT
    PAGEINOUT=$(vmstat -s | grep swapped 2>&1)
    SWAPPEDIN=`echo $PAGEINOUT | awk '{print $1}'`
    SWAPPEDOUT=`echo $PAGEINOUT | awk '{print $5}'`
    SWAPPEDINDIFF=`expr $SWAPPEDIN - $OLDSWAPPEDIN`
    SWAPPEDOUTDIFF=`expr $SWAPPEDOUT - $OLDSWAPPEDOUT`
    

    我试图避免存储变量的临时文件(因此需要采购它或在登录时创建变量)

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多