Linux:如何获取进程使用的交换空间?

3

获取进程驻留集大小很简单(使用getrusage()/proc/self/statm),但是如何获取交换量呢?从关于/proc/self/stat的man 5 proc中:

nswap %lu   Number of pages swapped (not maintained).

cnswap %lu  Cumulative nswap for child processes (not maintained).

还有其他想法吗?


可能是如何在Linux中查找正在交换的进程?的重复问题。 - hek2mgl
@hek2mgl 这完全不是重复的问题。另一个问题是询问如何获取使用交换空间的进程列表。而这个问题是关于作为开发人员,如何在代码内部检查程序的交换空间使用情况。 - Aleks G
@AleksG 请看答案。我用2秒钟谷歌了这个问题。 - hek2mgl
@hek2mgl 我有看过,但是它们都和这个问题无关。 - Aleks G
无法准确获取进程使用的交换空间大小。Top通过将SWAP = VIRT - RES来伪造此信息,但这不是一个好的...与此问题无关? - hek2mgl
1个回答

2

检查/proc/$PROCESS/status文件中是否有VmSwap。例如:grep VmSwap /proc/1/status


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接