大规模微服务场景下的十大痛点问题定位与优化
另外就是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的监控。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |