使用IP连接redis正常,使用域名响应变慢

2021年7月23日 0 条评论 1.82k 次阅读 0 人点赞

最近遇到个问题,一部分接口的响应速度最近变慢了不少。从最早的 200ms,到现在动不动就 500ms,甚至有一些已经到了 3000ms。虽然,还没有触发报警,但已经到了边缘,而且使用起来也不是很友好。准备优化一下。

开始以为是sql的问题,因为之前有过一次,索引建的不合理,当数据量达到300W之后,sql 的执行速度过慢导致了一系列问题。在导出log后,发现有一些没有执行sql的请求,同样响应过慢。

不得不给代码中增加断点,在一翻测试后发现,在从 redis 中获取缓存时,居然用掉了差不多 500ms。

问题好到后,开始和运维的同学一起检查。运维的同学写了脚本,说执行飞快。然后仔细,对比了一下,发现他在连接集群时,用的是 IP。而我的脚本使用的是 域名。当我换成IP后,速度确实也可以提升。现在的API响应已经降到了不到100ms。

但问题依旧存在,为什么IP正常,而域名会变慢呢??一番测试后,结果如下

  • 在这个服务器上,执行 dig doman,query time 是 0ms
  • PHP 执行 dns_get_record 函数,用的时间也只是 6~8ms
  • 使用python时,也是同样的效果,使用IP响应速度正常,使用域名要多 500ms

guojia

这个人太懒什么东西都没留下