问题描述
现在有我们程序是部署在服务器A的,A链接的是B。程序从B的redis进行存储和取数据的。
我们的业务是: 信息展示,也就是如果发现机器有异常了,实时进行监控。突然发现有一天,信息显示延迟了。
然后我们就开始排查究竟什么原因导致延迟的。
首先我们把程序每个模块的运行时间都打印出来了,
然后我们发现在redis这个模块的时候,花费的时间是最多的。
但是有时候是正常的,有时候是慢的,我们就怀疑是A->B的网络问题。
因为B还承接其他业务,我们没法直接操作,所以我们创建了一个虚机redis C
我们现在要检测 redis 和 网络连接。
我们通过使用ping 进行网络连接的花费时间的判断
利用redis-benchmark 对redis的QPS进行判断
当发生告警延迟的时候,我们通过对C进行QPS 以及 A-C的网络连接 以及A-B的网络连接 和A-C的redis QPS
发现 在C自己进行的是没有问题的, 在A-C A-B ping的时候都会慢 需要20ms 或者更多
QPS也会降下来
所以就排查出,是因为A服务器到其他的网络连接问题导致的
因为服务器A->B A->C需要过防火墙。
./redis-benchmark -h IP -p Port