排查PCP网络暴增异常¶
我在 zcloud
上尝试启用了不同的 pdca
,但是我突然发现自己的服务器出现了非常奇怪的网络流量暴增。
检查 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_amd64
和 pmproxy
周期性非常消耗CPU资源
我观察到下午 16:08 开始,过一段时间就会出现一个网络流量高峰,并且集中在 lo
回环地址上:
并且,会出现比较明显的 TCP重传:
此时 lo
接口上的网络包达到2Kops/s
观察 PCP Redis: Host Overview
的 Page fault rate
也看到明显的 mem.vmstat.pgfault
飙升:
此外,观察 Intel® Performance Counter Monitor (Intel® PCM) 面板,可以看到 Memory Bandwidth
也非常繁忙:
排查¶
初步可以判断是启用了 Performance Co-Pilot 监控
pmda
导致的 Redis Atlas 大量读写,但是:为何是周期性的峰值?
Performance Co-Pilot 的
pmda
到底写入了什么数据?怎么排查 Performance Co-Pilot 的性能数据抓取活动?
最初我怀疑是安装到
pmda
导致的,所以依次把怀疑可能有性能影响到pmda
都Remove
了。但是没有想到丝毫没有缓解问题偶然发现,其实这个
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 的说明(好奇)