排查PCP网络暴增异常

我在 zcloud 上尝试启用了不同的 pdca ,但是我突然发现自己的服务器出现了非常奇怪的网络流量暴增。

检查 top :

top 显示
top - 20:07:40 up 6 days, 19:49, 12 users,  load average: 3.39, 4.16, 4.04
Tasks: 826 total,   2 running, 824 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8.9 us,  1.5 sy,  0.0 ni, 89.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 386813.0 total, 307064.0 free,  67834.7 used,  11914.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used. 316364.8 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 311316 grafana   20   0  795828  31320  13052 S  97.4   0.0  59:19.18 /var/lib/grafana/plugins/performancecopilot-pcp-app/datasources/redis/pcp_redis_datasource_linux_amd64
  77018 pcp       20   0  218780 193032   7552 R  82.3   0.0  88:37.21 /usr/lib/pcp/bin/pmproxy -F -A
...
  76898 redis     20   0  494200 347644   9196 S  16.7   0.1  45:43.98 /usr/bin/redis-server 127.0.0.1:6379
 311263 grafana   20   0 4881636 208740  70816 S  16.4   0.1  18:34.99 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.+
...
 295193 root      -2   0 2269092  10892   4460 S   3.3   0.0  76:24.67 /usr/sbin/pcm-sensor-server -p 9738 --real-time
 434371 root      20   0   11448   5004   3360 R   1.6   0.0   0:00.71 top
...

可以看到 pcp_redis_datasource_linux_amd64pmproxy 周期性非常消耗CPU资源

我观察到下午 16:08 开始,过一段时间就会出现一个网络流量高峰,并且集中在 lo 回环地址上:

../../_images/debug_pcp_high_network_1.png

并且,会出现比较明显的 TCP重传:

../../_images/debug_pcp_high_network_2.png

此时 lo 接口上的网络包达到2Kops/s

../../_images/debug_pcp_high_network_3.png

观察 PCP Redis: Host OverviewPage fault rate 也看到明显的 mem.vmstat.pgfault 飙升:

../../_images/debug_pcp_high_network_4.png

此外,观察 Intel® Performance Counter Monitor (Intel® PCM) 面板,可以看到 Memory Bandwidth 也非常繁忙:

../../_images/debug_pcp_high_network_5.png

排查

  • 初步可以判断是启用了 Performance Co-Pilot 监控 pmda 导致的 Redis Atlas 大量读写,但是:

  • 最初我怀疑是安装到 pmda 导致的,所以依次把怀疑可能有性能影响到 pmdaRemove 了。但是没有想到丝毫没有缓解问题

  • 偶然发现,其实这个 lo 网络流量暴增,实际上和 PCP Redis 有关,也就是 Performance Co-Pilot Grafana Plugin 插件安装以后,选择了数据源 PCP Redis 来构建的 PCP Redis: Host Overview 面板:

    • 当切换到 PCP Redis: Host Overview Dashboard时候,就会看到 Network 流量暴增

    • 当浏览器切换到其他页面, Network 就会恢复到常规流量水平(也就是说当浏览器页面非激活状态,即鼠标没有点该监控页面),此时 Grafana通用可视分析平台 就不会调用 Performance Co-Pilot Grafana Plugin 刷新 PCP Redis 数据源数据

结论暂定

看来这个PCP网络流量暴增并没有什么影响,只是Grafana的页面渲染需要不断读取数据源导致。我这台监控观察的恰好就是Redis主机,所以观察到这个现象。相信后续做分布式监控,当有监控页面观察时,都会出现这种Redis流量暴增的现象。

备注

Page Fault 的说明(好奇)