sar -B 输出中的字段是什么意思?

rag*_*ags 9 linux performance sar

sar 联机帮助页说:

pgpgin/s - 系统每秒从磁盘调入的千字节总数。

pgpgout/s - 系统每秒调出到磁盘的千字节总数。

fault/s - 系统每秒发生的页面错误数(主要 + 次要)。这不是产生 I/O 的页面错误的计数,因为有些页面错误可以在没有 I/O 的情况下解决。

majflt/s - 系统每秒发生的主要错误数,这些错误需要从磁盘加载内存页面

这是否衡量掉期活动?它指的是什么分页?从磁盘获取数据被认为是分页?

另外,我已经读到 majflt/s 的大而恒定的值并不好。为什么?

例子 :

萨尔-B

12:00:08 AM pgpgin/s pgpgout/s fault/s majflt/s
12:10:05 上午 207.55 2522.76 5109.80 0.01
12:20:07 上午 303.83 274.64 4446.52 0.00
12:30:05 上午 53.85 251.81 4183.98 0.00
12:40:05 上午 43.19 234.05 4181.53 0.00
12:50:06 上午 88.89 265.46 4311.81 0.00
01:00:09 上午 64.60 232.72 4239.05 0.00
01:10:07 上午 69.71 216.89 4523.03 0.00
01:20:06 上午 81.37 250.02 4359.93 0.00
01:30:06 上午 79.77 246.28 4291.49 0.00
01:40:02 上午 42.89 227.22 4319.88 0.02
01:50:06 上午 214.46 441.33 4760.78 0.00
[...]

the*_*bit 10

分页与交换不同。在调用可执行文件以从磁盘读取其二进制代码的一部分或使用内存映射文件时,您可能有分页活动。这并不(必然)意味着使用了交换。pgpin/s 和 pgpout/s 值指的是这个过程。

主要故障/秒确实测量了由于对当前未加载到物理内存的虚拟地址空间部分的内存请求而需要发生的磁盘读取活动。该指标也不是专门用于换出页面,而是用于任何类型的页面(包括内存映射文件和磁盘上的可执行二进制文件)。

持续大量的主要故障意味着您的进程执行经常被中断,无法等待磁盘 I/O 完成读取页面(代码、内存映射文件数据或之前换出到磁盘的其他内存部分)。

考虑到这一点,这是一个很好的指标,如果您的系统可能缺乏当前负载的内存 - 如果先前加载到内存中的页面由于内存不足而再次被抛出(或换出),则会反复产生重大故障,并且然后再次请求,因为当前流程正在积极处理它们。

  • 次要错误是不会导致磁盘 I/O 的页面错误 - 页面可能存在于内存中,但(尚未)分配给进程的地址空间。一个主要错误反过来*确实* 导致磁盘 I/O,因为页面已被确定不存在并且需要从磁盘读取。至于 pgpin 和 pgpout 值——这些定义并不像你希望的那样清晰——这个邮件列表帖子提供了一些见解:http://www.gossamer-threads.com/lists/linux/kernel/1131720?do = post_view_threaded。如果您确实需要查看交换活动,请查看 vmstat 的 si / so 计数器。 (5认同)
  • gossamer-threads 的工作链接 http://www.gossamer-threads.com/lists/linux/kernel/1131720?do=post_view_threaded (3认同)