首页 | 财经 | 资源 | 理财 | 考研 | 职场 | 论文 | 资格 | 股票学院 |

股票学院: 股票入门 - 股票知识 - 股票术语 - 炒股技巧 - 选股技巧 - 跟庄技巧 - 炒股经验 - 投资策略 - K线图 - 均线 - 分时图 - 成交量 - 波浪理论 - 基本面分析 - 心理分析 - 涨停研究 - 趋势线 - 江恩理论 - MACD - KDJ - 技术指标 - 财经股票书籍在线阅读 - 金融类书籍下载 - 银行学院 - 保险学院 - 外汇学院 - 债券学院 - 股票学院 - 基金学院 - 港股学院 - 黄金学院

当前位置:天下金融网 > 金融云 > 文章正文

大规模微服务场景下的十大痛点问题定位与优化(6)

时间:2019-09-18 06:25:56来源:云技术作者:佚名

电商请求基本上都是基于HTTPS协议的,SSL往往通过offload的方式通过硬件进行加速,在压力大的时候,优化明显。

大规模微服务场景下的十大痛点问题定位与优化

对于负载均衡这一层的问题,出问题的点往往在于虚拟网关和负载均衡,

我们要中断看这一层的网卡是不是丢包?

另外就是DPDK的PMD进程的CPU占用率是不是特别的高,因为默认的网卡接收网络包是通过中断通知内核来接收包,但是DPDK进行了优化,它通过主动polling的模式减少中断,它在用户态有一个PMD的进程,他会不断地从网卡里面去polling,会占用大量CPU,如果他CPU特别高就说明接收包的速度本身就很高了。这时候要注意观察流量是否存在热点,流量是否突破单台瓶颈。

对于虚拟网关来说,使用的是一致性哈希的方法选择网关,随着持续的浮动IP的创建和删除,分布不一定均衡,就算IP分布均衡,这些IP对应的业务其实没有那么均衡,例如多个热点请求落到一个网关上。

如果说是存在热点,导致DPDK的PMD进程CPU过高,可以采取的策略是高流量的IP地址可以进一步地打散,重新调整哈希的策略。

另外会观察是否超过单台的瓶颈,我们会测试每台机器的IO的瓶颈,也会进行QoS限流,如果是超过了瓶颈,说明这一台的确压力过大,如果其他的节点网络IO还相对比较低,基本上也是热点问题。如果都高,则说明需要扩容。

另外网关要注意区分走哪种类型的网关,通过测试,我们发现DNAT网关由于是一对一的,性能比较好。SNAT因为共享IP并且要计算哈希,还要做conntrack,吞吐量不太容易优化上去。对于功能需求走SNAT网关比较方便的应用,可以建议用户换成DNAT网关,从而获得高的吞吐量。

大规模微服务场景下的十大痛点问题定位与优化

如果入口流量没有问题,这时候就要看服务器之间的调用是不是有问题,因为我们的容器是套在虚拟机里面的,主要起编排和发布的作用,这时候就要看云主机的steal是不是特别的高,对于物理机上的cpu,多个虚拟机会竞争排队,排队不上就会等待,等待的时候就会出现CPU steal,网络吞吐量肯定就上不去,甚至会出现丢包,因为收到的网络包来不及处理。

另外就是磁盘的IO utils是不是有异常,虽然容器中多部署无状态服务,对于磁盘的依赖相对比较小,日志也是以异步的方式输出的,但是有时候也会存在IO hang的情况,这时候就要看IO的监控。

如果需要细致的分析,可以登录到宿主机上看KVM,分析KVM的性能的瓶颈在哪里,在虚拟机里面进行网络监控之外,在宿主机上可以对虚拟网络的组件进行分析,测试两个集群之间的虚拟网络组件是否出现了问题。

大规模微服务场景下的十大痛点问题定位与优化

分析完了网络和存储虚拟化,接下来看计算虚拟化KVM。可以做一些定制化的一些调优,比如说CPU的BIOS中会把C-States和P-States这种节能开关关掉,如果是核心业务集群,不需要打开这些开关。

另外就是物理CPU和vCPU的绑定,这是为了解决steal的问题,如果把核绑到虚拟机上,基本上就不会存在VCPU在物理CPU之间切换的问题,就会把steal解决掉。

另外是NUMA亲和性的问题,在同一个NUMA Node中,CPU对内存的访问就会快一些,跨NUMA node就会慢一点,分配的时候尽量是同样CPU和同样的内存放在同一个NUMA 节点。

虚拟机网卡可以通过SR-IOV的方式来进行优化,云主机绑定核也是在grub中设定好,一台机器上面能起多少个服务,给宿主肌留多少核,给监控留多少核,然后最后给应用留多少核,都是提前规划好的,例如前几个核是给宿主机自己去用的,然后几个核是留给DPDK去用的,最后几个核是留给监控去用的,中间的核留给服务。

大规模微服务场景下的十大痛点问题定位与优化

对于限流策略问题,基础设施层和业务层有一个配合的问题,底层的网络有QoS流控的,业务其实也有限流的,这两个值要匹配起来,否则会有问题,比如当业务层把线程数调大的时候,结果基础设施层被限流了会出现丢包。

大规模微服务场景下的十大痛点问题定位与优化

当我们从监控里面看到有丢包事件的时候,业务层会怀疑是虚拟网络的问题,丢包了以后TCP会重传,重传会使得响应比较的慢。

在没有定位到到底哪个环节丢包的时候,可以先做如下的处理。为了使TCP的丢包重传和流控策略不要用默认的策略,也即一旦出现了丢包,内核协议栈就认为网络拥塞,从而减少拥塞窗口,这时候本来就想加速重传,结果窗口下来了,想加速也加不上去。如果切换成BBR,出现丢包的时候就会好很多。

相关阅读

焦点图文

关于我们 | 广告服务 | 商务合作 | 网站地图

版权所有 Copyright(C)2018-2020 苏州骐云跃网络科技有限公司,未经授权禁止复制或建立镜像,否则将依法追究法律责任!
声明:我们不做任何形式的代客理财及投资指导,凡是以天下金融网名义做股票推荐的行为均属违法!
广告商的言论与行为均与天下金融网无关!股市有风险,投资需谨慎。
苏公网安备 32050502000166号
苏ICP备14018528号
商务合作:联系我们

天下金融网版权所有