如何获取有关Linux程序是否交换的信息?

时间:2010-11-23 14:01:54

标签: linux posix bsd

更具体地说:我想从程序内部找到这些信息,最好是在它开始交换之前,以便我能做出反应。到目前为止,我发现:

  • /proc内的信息,这不是很有用

  • mincore系统调用似乎在Linux和bsd上可用,但要求我传入我感兴趣的所有页面(可能已经足够了,但有点单调乏味)

还有什么想法?

1 个答案:

答案 0 :(得分:2)

的vmstat

要每2秒运行一次,请说“vmstat 2”。它为您提供如下输出:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0  16124 431352 439000    0    0     4     2   37   18  0  0 100  0  0

“si”和“so”列是“swap-in”和“swap-out”。 Swapd是交换设备中的内存量。 Swapd应该是稳定的,而si则为零。

<强>记住:

你不应该问“我的程序是否交换” - 而不是“是系统交换”。你的程序可能导致其他人交换 - 其他人可能会导致你的交换,等等。无论哪种方式,当发生这种情况时 - 性能d ...我... ... ... ....