• 云计算之路-阿里云上:SLB引起的https访问速度慢问题团队


    自从我们在阿里云SLB上部署了https之后(详见在SLB上部署https遇到的问题及解决方法),陆续有园友向我们反馈登录时速度很慢(登录时是通过https访问),有些园友甚至无法访问登录页面。

    而我们自己登录时,速度飞快,从未遇到过登录速度慢的问题。

    在昨天之前,我们一直怀疑可能是这些园友所使用的网络对https进行了某些限制,没有一点去怀疑问题与阿里云有关。

    昨天晚上 @Bill Tsui 在闪存上反馈这个问题时,我们让他用http访问,速度立即变得飞快,只要换成https速度就立马变慢。这触发了我们把问题的怀疑点放到了阿里云的SLB,http走的是SLB的七层负载均衡,而https走的是SLB的四层负载均衡(TCP)。

    阿里云SLB

    四层负载均衡的工作原理(详见四层和七层负载均衡的区别):

    负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

    是不是SLB对TCP的处理造成了某些网络线路访问速度慢呢?

    当我们把怀疑点放在这个地方,立即想到了验证方法——不走SLB,直接通过云服务器进行https访问。

    @Bill Tsui  的帮助下,我们得到验证结果:不走SLB,https访问速度立即变得飞快。

    为了进一步验证这个怀疑,今天早上我们在闪存上了解到一些登录速度慢的园友;然后修改登录页面所在域名的DNS,让之解析为云服务器的IP(不走SLB);等解析生效后,这些园友反馈登录速度立即变得很快。

    经过这样的验证,我们基本确认问题出在SLB,我们会向阿里云反馈,希望得到阿里云的进一步验证。

    通过这个问题,我们的体会是:做云服务一个很大的挑战是任何一个小问题都可能会被放大,一个问题影响到云上的成千上万的网站,就会影响到这些网站上的成万上亿的用户。

    感谢 @Bill Tsui@rsync@打醋的 在这次问题验证中提供的帮助!

    更新:

    后来通过在SLB上开启会话保持解决了问题。

  • 相关阅读:
    ajax数据查看工具(chrome插件)
    JavaScript性能优化小知识总结
    jsonp
    学习Javascript闭包(Closure)
    浅析闭包和内存泄露的问题
    设备像素比
    【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
    java开发的web下载大数据时的异常处理
    Node.js中的exports与module.exports的区分
    Task与Thread间的区别
  • 原文地址:https://www.cnblogs.com/cmt/p/3503472.html
Copyright © 2020-2023  润新知