/ proc / vmstat中的参数(pgpgin,pswpin)和(pswpout,pgpgout)之间的确切区别是什么?


9

请注意,此问题linux仅适用于。而到swap space,我指的是专用的swap partition

我做google了一些,发现了这些definitions

Paging refers to writing portions, termed pages, of a process’ memory to disk.
Swapping, strictly speaking, refers to writing the entire process, not just part, to disk.
In Linux, true swapping is exceedingly rare, but the terms paging and swapping
often are used interchangeably.

page-out: The system's free memory is less than a threshold "lotsfree" and unnused / least used pages are moved to the swap area.
page-in: One process which is running requested for a page that is not in the current memory (page-fault), it's pages are being brought back to memory.
swap-out: System is thrashing and has deactivated a process and it's memory pages are moved into the swap area.
swap-in: A deactivated process is back to work and it's pages are being brought into the memory.

现在,您可能想用询问分页和交换之间差异的问题来重复该问题。但我寻求更多。在任何时候,这些计数器是否/proc/vmstat互斥?我的意思是,该参数是否pswpin包含来自pgpgin或反之的一些计数?一个过程到底发生了deactivated什么?如果将所有页面都移到swap太空,那么它与多个页面pageouts有何不同?此外,如果pagein一旦发生页面错误发生时,有什么可以一个说的另外两个参数pgmajfault,并pgfault针对此事件?是否每当pagefault (major? minor?)出现a 时pagein也会发生对应的情况?

如果建议使用一些示例程序/基准测试这些单独的参数,将很有帮助。

PS:我可能会继续添加/编辑问题:)


您最好将这个问题移到unix.stackexchange.com
Antonio

Answers:


1
  1. pgpgin-系统每秒从磁盘分页的千字节数。
  2. pgpgout-系统每秒分页到磁盘的千字节数。
  3. pswpin-系统每秒从磁盘交换的千字节数。
  4. pswpout-系统每秒交换到磁盘的千字节数。

5
中的数值/proc/vmstat每秒,他们总自去年启动(见linuxinsight.com/proc_vmstat.html)。如果要在某个时间单位内对值进行评分,则需要取这些/proc/vmstat值之间的差-这正是实用程序喜欢vmstatsar可以为您做的事情。
devkev

2
pswpin / pswpout是页面数,而不是千字节。
乔治·索维托夫

1

对于最新的Linux内核pgpgin –系统每秒从磁盘中调入的千字节数。pgpgout –每秒系统已调出到磁盘的千字节数。

pswpin –每秒系统从磁盘交换的页面数。pswpout –每秒系统已换出到磁盘的页面数。

pgpgin和pgpgout本质上指示IO活动。

正如电子邮件中指出的


2
pswpi / pswpout =页面输入/输出而不是千字节输入/输出
IanB 2015年

5
中的数值/proc/vmstat每秒,他们总自去年启动(见linuxinsight.com/proc_vmstat.html)。如果要在某个时间单位内对值进行评分,则需要取这些/proc/vmstat值之间的差-这正是实用程序喜欢vmstatsar可以为您做的事情。
devkev

1

这么老的问题,到目前为止还没有正确的答案。

首先,CPU和内核将内存分为所谓的页面。页面的大小由CPU的体系结构确定,许多体系结构支持多种不同的页面大小,但是x86_64体系结构中最常见的页面大小为4KB。您所讨论的这些参数显示了已将多少个内存页读/写到磁盘,以及其中有多少页被交换。

请记住,进入页面是Linux内核中的正常活动,几乎每当您将二进制文件从磁盘(未缓存)加载到运行内存中时(即每次启动任何应用程序时)都会发生。

由于pgin和pgout操作并不总是您需要担心的,因此创建了仅包含交换信息的其他计数器-pswpin和pswpout计数器-当将内存页写入交换或从交换中读取时,它们会增加交换。

再次说明-这也不表示有问题,仅表示在某些情况下存在问题-例如,当您看到这些数字在短时间内发生很大变化时(通常是系统内存不足时)。

简而言之:

  • pgpgin,pgpgout-从磁盘读取并写入内存的页面数,您通常不需要关心这些数字
  • pswpin,pswpout-您可能想每次跟踪这些数字(通过诸如普罗米修斯之类的监控),如果出现峰值,则意味着系统正在大量交换并且您有问题
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.