这个坑值得记一笔。应用和数据库分别放在不同可用区,内网能通,但接口延迟从一毫秒涨到五毫秒,批量请求被放大得很明显。
把日志和配置对完,能解释这个现象的基本就这几处。跨可用区流量要经过骨干网络,物理距离更远;串行调用太多,单次延迟被成倍放大;没有做连接复用,每次都要重新握手。
测量两端延迟
ping -c 20 对端内网IP
接着看路由跳数
traceroute -n 对端内网IP
再往下确认是否走了公网绕行
ip route get 对端内网IP
等前面都确认过,再把高频调用改到同区部署
ss -tn state established | wc -l
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
改完先别撤,确认这几项。同区部署后延迟回到一毫秒以内,批量接口总耗时明显下降。
提醒一点。可用区之间的延迟是物理决定的,优化只能减少调用次数和连接开销;关键链路尽量放在同一个可用区。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。