现象:客户机按照 淘宝RDS连接说明 中说的配置好以后,确实能访问 RDS 服务器了,但是有一些奇怪的问题:
-
有时候连接特别慢,可能需要 5+ 秒。
-
返回结果数据量较大的查询有时候会特别慢,但是在转发机上做这种查询就没有问题。
经过一些抓包分析发现:
-
第一个问题是由于 DNS 解析太慢造成的。替换成我们内部的Linux DNS 服务器(有缓存)就没问题了。
-
RDS 转发机(详见淘宝RDS连接说明) 开启了 LRO (大量接收减负),而这个功能在部分内核版本上和 IP 转发功能有冲突。
解决方法:
-
更换DNS,使用我们自己架设的DNS服务器
-
在 RDS 转发机上关闭 LRO 功能,或者更新内核版本。
关于客户机的设置(否则淘宝的聚石塔平台会不返回数据,原因不详)
centos 6版本的系统需要
net.ipv4.tcp_timestamps = 0
centos5 版本的,这个参数无所谓
本文转自 Bruceweien 51CTO博客,原文链接:http://blog.51cto.com/bruceweien/1932406