5

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

  • 里面的资料/proc,用处不大

  • mincoresyscall 似乎在 linux 和 bsd 上可用,但需要我传递我感兴趣的所有页面(可能就足够了,但有点乏味)

还有什么想法吗?

4

1 回答 1

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...i..e....s....

于 2010-11-23T14:31:55.170 回答