无论我的程序是否正在交换,如何获取有关 linux 的信息?
更具体地说:我想从程序内部找到这些信息,最好是在程序开始交换之前找到,这样我就可以做出反应。到目前为止我发现:
/proc
内的信息,这不是很有用< code>mincore syscall 似乎在 linux 和 bsd 上都可用,但要求我传入我感兴趣的所有页面(可能就足够了,但有点乏味)
还有更多想法吗?
More specifically: I want to find this information from inside the program, preferably just before it starts swapping so I can react. So far I found:
Information inside
/proc
, which is not very usefulmincore
syscall which seems to be available on linux and bsd, but requires me to pass in all the pages I'm interested in (might be enough, but it's a bit tedious)
Any more ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
vmstat
要每 2 秒运行一次,请输入“vmstat 2”。它为您提供如下输出:
“si”和“so”列是“换入”和“换出”。 Swapd 是交换设备中有多少内存。 Swapd应该是稳定的,并且si等为零。
记住:
您不应该真正问“我的程序是否正在交换”,而不是“系统是否正在交换”。你的程序可能会导致其他人交换 - 其他人可能会导致你的交换,等等。无论哪种方式,当这种情况发生时 - 性能...
vmstat
To run every 2 seconds, you say "vmstat 2". It gives you output like:
The "si" and "so" columns are "swap-in" and "swap-out". Swapd is how much memory is in the swap device. Swapd should be stable, and si and so zero.
Remember:
You shouldn't really ask "is my program swapping" - as opposed to "is the system swapping". You program can cause others to swap - others can cause yours to swap, etc. Either way, when that happens - performance d...i..e...s....