当缓存服务器距离较远,延迟会增加吗?我尝试使用ping和tcpdump进行计算

这是什么?

在我的系统中,从前端服务器到memcached服务器的连接次数相当多。在数据中心中,以前前端服务器和缓存服务器都在同一片段中,物理上也很近。由于某种情况,必须替换服务器,暂时将其放在不同的片段中,物理上也更远,并且中间会有一些交换机和路由器。这可能导致从新的前端服务器连接到旧的memcached服务器时存在延迟问题。从网络的角度来看,这是否会在应用程序的响应性能方面成为问题,或者与现在相比实际上并不重要,我在判断之前考虑的一些备忘录。

测量

测量的方式

取得ping的time的100次平均。
ping的time是什么意思?请参考链接:https://linuxjm.osdn.jp/html/netkit/man8/ping.8.html

进行往返时间和丢包数据的统计计算。

所以,只是往返的时间。

在TCP中,延迟是什么?在TCP中,每个数据包都会进行ACK,因此如果要发送的数据大小较大,数据包数量增加,则整体上每个数据包的延迟就会积累。因此,可以认为ping的往返时间增加直接导致了响应时间的延迟。

进行测试。

在同一段落中有两台服务器,一台是旧前端服务器(hoge-old-web),另一台是旧缓存服务器(hoge-cache)。

[myuser@hoge-old-web ~]$  ping -c 100 xx.xx.xx.xx > ./tmp_to_hoge-cache_ping
[myuser@hoge-old-web ~]$ grep "time="  ./tmp_to_hoge-cache_ping > ./tmp_to_hoge-cache_latency
[myuser@hoge-old-web ~]$ awk '{print $(NF-1)}' tmp_to_hoge-cache_latency | awk -F'=' '{sum+=$2} END{print sum/NR}'
0.14284

大约0.14毫秒

新的front服务器(hoge-new-web)=》旧的cache服务器(hoge-cache)

[root@hoge-new-web ~]# ping -c 100 xx.xx.xx.xx > ./tmp_to_hoge-cache_ping
[root@hoge-new-web ~]# grep "time="  ./tmp_to_hoge-cache_ping > ./tmp_to_hoge-cache_latency
[root@hoge-new-web check_latency]# awk '{print $(NF-1)}' tmp_to_hoge-cache_latency | awk -F'=' '{sum+=$2} END{print sum/NR}'
0.16793

大约0.16毫秒

Differential

0.16793减去0.14284等于0.02509毫秒。
换算成百分比:
0.02509除以0.14284再乘以100等于17%。

当访问前端时,memcached被频繁调用了多少次?

调用代码中缓存方法的次数很重要,但要考虑整个延迟,重要的是知道有多少数据包被发送。因此,我想用tcpdump来确认发送了多少数据包。

myuser@hoge-dev-web [~ ] $ sudo tcpdump -i eth0 > ./tmp_tcpdump_to_memcache
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C7136 packets captured
7136 packets received by filter   // 全部でこれだけのパケットが1リクエストで通った
0 packets dropped by kernel

在其中连接到memcached的是什么?

myuser@hoge-dev-web [~ ] $ grep "xx.xx.xx.xx.11211 >" tmp_tcpdump_to_memcache -c
1579

来自memcached的数据包有1579个请求。(返回也有相同数量的数据包。由于ping的时间是RTT,所以只需要知道通过其中一条路径的次数即可。)

最大延迟会增长多久?

每个数据包的延迟为0.02509毫秒*1579=39.6毫秒。几乎没有误差,看起来不需要太在意。

总结

这次的事情,你不需要太在意延迟。

广告
将在 10 秒后关闭
bannerAds