页入/页出/页错误
交换,严格来说,是指将整个过程,而不仅仅是一部分,写入磁盘。在 Linux 中,真正的交换极为罕见,但术语分页和交换经常互换使用。
- 页出: 当页面写入磁盘时,该事件称为页出
- 页入: 当页面返回物理内存时,该事件称为页入,页面插入是常见的、正常的,无需担心。例如,当一个应用程序第一次启动时,它的可执行映像和数据被分页。这是正常行为。
- 页面错误: 页面错误发生在内核需要一个页面时,发现它在物理内存中不存在,因为它已被分页,并从磁盘重新读取它。
换页可能是麻烦的征兆。当内核检测到内存不足时,它会尝试通过分页来释放内存,尽管这可能会不时发生,但如果页面输出大量且持续存在,内核可能会实际花费更多时间来管理分页活动而不是运行应用程序,并且系统性能受到影响。这种可悲的状态被称为颠簸。
Prometheus Node_exporter 之 Memory Detail Vmstat
Memory Pages In / Out
Pagesin - 从启动到现在读入的内存页数的速率(5分钟内) /proc/vmstat pgpgin
metrics:irate(node_vmstat_pgpgin{instance=~"$node:$port",job=~"$job"}[5m])
Pagesout - 从启动到现在换出的内存页数的速率(5分钟内) /proc/vmstat pgpgout
metrics:
irate(node_vmstat_pgpgout{instance=~"$node:$port",job=~"$job"}[5m])
Memory Pages Swap In / Out
Pswpin - 数据从磁盘交换区装入内存的速率(5分钟内) /proc/vmstat pswpin
metrics:irate(node_vmstat_pswpin{instance=~"$node:$port",job=~"$job"}[5m])
Pswpout - 数据从内存转储到磁盘交换区的速率(5分钟内) /proc/vmstat pswpout
metrics:irate(node_vmstat_pswpout{instance=~"$node:$port",job=~"$job"}[5m])
Context Switches / Interrupts
Context switches - CPU 的 context switch 平均次数(5分钟内)
metrics:irate(node_context_switches_total{instance=~"$node:$port",job=~"$job"}[5m])
Interrupts - 服务的平均中断总数(5分钟内)
metrics:
irate(node_intr_total{instance=~"$node:$port",job=~"$job"}[5m])
Linux问题排查7, 网络4, 网络问题排查常用命令4