在对网站进行重构时,当时脑抽直接在在线数据库上对表数据进行清除对表结构进行修改,还是第二天才发现,最后靠ECS每天的自动快照花了半天时间才恢复数据。
所以就想把数据库,单独分离出来(后续将考虑将文件也分离出来),于是乎就尝试切换到RDS
但是,切换到RDS之后网站访问速度变慢了非常多。每次请求都有5秒到15秒的延迟,这哪受得了。
监控网站,发现时间都消耗在数据库请求上了,
通过ping访问RDS内网链接ping xxxx.mysql.rds.aliyuncs.com,发现解析非常耗时。
PING xxxxx.mysql.rds.aliyuncs.com (10.140.251.222) 56(84) bytes of data.(这一步非常慢,后面都挺正常)
64 bytes from *.*.*.*: icmp_seq=1 ttl=58 time=0.329 ms
64 bytes from *.*.*.*: icmp_seq=2 ttl=58 time=0.290 ms
怀疑是域名解析导致的,修改host,更改域名指向
*.*.*.* xxxx.mysql.rds.aliyuncs.com
果真速度瞬间上来了,于是咨询阿里云售后,内网链接指向的IP是不是变动的?
得到反馈如下
内网ip 如果rds 维护或者主备切换,ip会变动的,其次您查询一下您服务器使用的dns 是否服务器内网dns 。其次您可以使用223.5.5.5 与223.6.6.6 测试一下解析是否速度变快。(其实也是在意想之中,集群怎么会有固定IP)
加host果然不可行,按售后的回复,把两个阿里云的DNS加到resolve.conf,再
ping xxxx.mysql.rds.aliyuncs.com,速度果真快了很多,说明解析的问题解决了。但是访问网站发现速度依然慢如蜗牛。偶尔还会有
php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution错误,断定一定是DNS的问题,
网站是nginx和apache搭配的,因为nginx是指定resolve,考虑到是不是apache的问题,就查apache能不能像nginx一样指定DNS。查来查去也没结果,但确意外发现,修改了resolve.conf配置,其实apache并不能立即加载新的DNS,于是乎立马把apache重启了下。
啦啦啦,果真搞定了。
--写在后面
上面的问题可能是因为我主机上配了个本地dnsmsaq,导致解析到外网绕了一圈,导致速度慢下来了。
网络这块不懂,也算是个处理过程吧,记录下以后遇到好查看。
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。