请问/proc/meminfo中哪些条目对应页换入换出、swap换入换出?
答案
你的猜测是不正确的,两个字段的实际含义和你认为的swap in/out计数完全不匹配:
SwapCached指的是已经被换出到swap空间、之后又被重新加载回内存的页缓存,这类页面如果后续需要再次换出且内容没有修改时,不需要重复写入swap空间,属于存量状态指标,不是swap in的累计计数。SwapFree指的是当前swap分区/swap文件中未被占用的空闲容量,同样是存量状态指标,和swap out的累计计数没有关联。
正确的统计字段获取方式
你需要的页交换、页读写的累计计数都可以从/proc/vmstat虚拟文件中获取:
swap in/out 计数
pswpin:系统从启动到当前时刻,累计swap in(将页从swap空间读取到内存)的总页数pswpout:系统从启动到当前时刻,累计swap out(将页从内存写入到swap空间)的总页数
page in/out 计数
pgpgin:系统从启动到当前时刻,累计从块设备读入内存的总页数pgpgout:系统从启动到当前时刻,累计从内存写入块设备的总页数
你只需要间隔固定时间两次采样上述字段的数值,用差值计算对应时段内的in/out比率即可。如果不想额外读取/proc/vmstat,/proc/stat中的page行也存储了pgpgin和pgpgout的累计值,顺序为先in后out,单位同样是页。
字段含义的官方查询渠道
你可以直接执行本地命令man 5 proc查看proc文件系统的官方手册,里面对每个虚拟文件、每个字段的定义都和你当前运行的内核版本完全匹配,是最准确的参考来源。
内容的提问来源于stack exchange,提问作者arstneio
相关产品推荐
相关产品推荐

