更具体地说:我想从程序内部找到这些信息,最好是在它开始交换之前,以便我能做出反应.到目前为止,我发现:
里面的信息/proc,这不是很有用
mincore 系统调用似乎可以在linux和bsd上使用,但要求我传入我感兴趣的所有页面(可能已经足够了,但它有点乏味)
还有什么想法吗?
虚拟机状态
要每 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
Run Code Online (Sandbox Code Playgroud)
“si”和“so”列是“换入”和“换出”。Swapd 是交换设备中有多少内存。Swapd应该是稳定的,并且si等为零。
记住:
你不应该真正问“我的程序是否正在交换”,而不是“系统是否正在交换”。你的程序可能会导致其他人交换 - 其他人可能会导致你的交换,等等。无论哪种方式,当这种情况发生时 - 性能...