当前位置: 首页 > news >正文

客户网站回访抖音代运营找客户话术

客户网站回访,抖音代运营找客户话术,目前哪个网站建设的最好,wordpress 用户后台前言 在阿里七层流量入口接入层#xff08;Application Gateway#xff09;场景下#xff0c; Nginx 官方的Smooth Weighted Round-Robin#xff08; SWRR #xff09;负载均衡算法已经无法再完美施展它的技能。 Tengine 通过实现新的负载均衡算法Virtual Node Smooth We…前言 在阿里七层流量入口接入层Application Gateway场景下 Nginx 官方的Smooth Weighted Round-Robin SWRR 负载均衡算法已经无法再完美施展它的技能。 Tengine 通过实现新的负载均衡算法Virtual Node Smooth Weighted Round-RobinVNSWRR 不仅优雅的解决了 SWRR 算法的缺陷而且QPS处理能力相对于 Nginx 官方的 SWRR 算法提升了60%左右。 问题 接入层 Tengine 通过自研的动态 upstream 模块实现动态服务发现即运行时动态感知后端应用机器扩缩容、权重调整和健康检查等信息。同时该功能可以做很多事情比如用户可通过调整后端应用某台机器的权重从而达到线上真实引流压测目的。然而这些操作在 Nginx 原生 SWRR 算法下却可能引起不可逆转的血案。 • 在接入层Application Gateway场景下 Nginx 的负载均衡算法 SWRR 会导致权重被调高机器的QPS瞬间暴涨如上图App2-host-A机器当权重调整为2时某一时刻流量会集中转发到该机器 • Nginx 的 SWRR 算法的处理时间复杂度是O(N)在大规模后端场景下 Nginx 的处理能力将线性下降 综上所述对接入层 Tengine 的负载均衡转发策略的改造及性能优化已迫在眉睫。 原生 SWRR 算法分析 在介绍案列之前我们先简单介绍下 Nginx 的负载均衡算法 SWRR 转发策略及特点 SWRR 算法全称是Smooth Weighted Round-Robin Balancing顾名思义该算法相比于其它加权轮询WRR算法多一个smooth平滑的特性。 下面我们就一个简单的列子来描述下该算法 假设有3台机器A、B、C权重分别为5、1、1其中数组s代表机器列表、n代表机器数量每个机器的cw初始化为0、ew初始化为机器权重、tw代表本轮选择中所有机器的ew之和、best表示本轮被选中的机器。简单的描述就是每次选择机器列表中cw值最大的机器被选中机器的cw将会减去tw从而降低下次被选中的机会简单的伪代码描述如下 best NULL; tw 0; for(i random() % n; i ! i || falg; i (i 1) % n) { flag 0; s[i].cw s[i].ew; tw s[i].ew; if (best NULL || s[i].cw best-cw) {best s[i]; } }best-cw - tw; return best; 请求编号 选择前的权重值 被选中的server 选择后的权重值 0 {5,1,1} A {-2,1,1} 1 {3,2,2} A {-4,2,2} 2 {1,3,3} B {1,-4,3} 3 {6,-3,4} A {-1,-3,4} 4 {4,-2,5} C {4,-2,-2} 5 {9,-1,-1} A {2,-1,-1} 6 {7,0,0} A {0,0,0} 其 SWRR 算法选择的顺序为{ A, A, B, A, C, A, A } 而普通WRR算法选择的顺序可能为{ C, B, A, A, A, A, A } SWRR 相比于普通的WRR算法特点平滑、分散 。 调高权重引发的血案 从上面的描述来看 SWRR 算法似乎已经比较完美了但是在某些场景下还是有一定的缺陷下面我们就一个真实的案列来看看它都有哪些缺陷 一天早上流量调度的同学匆忙的跑到我的工位当时看他神色是尤为的紧张心想肯定是出啥问题了。果不其然为啥我把中心机房某台机器的权重从1调整为2的时候接入层 Tengine 并不是按照这个权重比例转发流量恩当时被调高机器QPS变化趋势如下图所示 注其中深蓝色曲线表示权重被调高机器的QPS变化浅绿色曲线表示该集群单机的平均QPS。 当时看到这个流量趋势变化图的时候也是一脸茫然不过好在有图有数据那就可以先分析一下这个图的几个特征数字由于部分数据敏感详细数据分析就不在此处展开。直接描述其现象和原因 被调高权重的机器当时被分发到的流量基本上是该应用机房总流量的1/2一段时间后该机器的流量才恢复到预期的权重比例。其原因就是由于接入层 Tengine 对后端机器信息的变化是动态感知热生效的而 Nginx 官方的 SWRR 算法策略第一次会选择当前机器列表中权重最大的机器转发流量。从而进一步导致已感知到后端机器权重变化的接入层 Tengine 都会将第一个请求转发到权重被调高的机器上。 大规模下性能骤降 如下是在upstream里面配置2000个后端在反向代理场景下压测 Nginx 的函数热点图如下所示。其中ngx_http_upstream_get_peer函数CPU消耗占比高达39%其原因是因为 SWRR 算法的选取机器的时间复杂度为O(N) (其中N代表后端机器数量)这就相当于每个请求都要执行接近2000次循环才能找到对应本次转发的后端机器。 • 压测环境 CPU型号 Intel(R) Xeon(R) CPU E5-2682 v4 2.50GHz 压测工具./wrk -t25 -d5m -c500 http://ip/t2000 Tengine 核心配置配置2个worker进程压力源 --长连接-- Tengine / Nginx --短连接-- 后端 下面我们做个试验控制变量是 upstream 里面配置的 server 数量观察不同场景下 Nginx 的 QPS 处理能力以及响应时间RT变化情况。从图中可以发现当后端 upstream 里面的 server 数量每增加500台则 Nginx 的 QPS 处理能力下降 10% 左右响应RT增长 1ms 左右。 从上面的分析基本上已经确认是 SWRR 算法存在如上两个缺陷下面就开始解决 改进的 VNSWRR 算法 虽然经典的WRR算法如随机数方式实现可以在时间复杂度上达到 O(1) 而且也可以避免 SWRR 算法调高权重的选取缺陷。但是在某些场景下如小流量可能造成后端的流量不均等问题尤其是在流量瞬间暴涨的场景下有太多不可确定性。于是就构思是否有一种算法即能拥有 SWRR 算法的平滑、分散特点又能具备 O(1) 的时间复杂度。所以就有了Virtual Node Smooth Weighted Round-Robin VNSWRR 算法。 此处拿个列子来说明此算法3台机器A、B、C权重分别为1、2、3N代表后端机器数 、TW代表后端机器权重总和。 算法关键点 o 虚拟节点初始化顺序严格按照 SWRR 算法选取保证初始化列表里的机器能够分布足够散列 o 虚拟节点运行时分批初始化避免密集型计算集中。每批次虚拟节点使用完后再进行下一批次虚拟节点列表初始化每次只初始化min(n, max)个虚拟节点 算法描述 o Tengine 程序启动或者运行时感知后端机器信息变化时则构建TW个虚拟节点且第一次只初始化N个节点注TW代表后端机器权重之和N代表后端机器数 o 各个进程设置随机起点轮询位置如上图的Step 1对应的列表其起点位置指向B o 当请求到达后从设置的随机起点B位置轮询虚拟节点列表若轮询到已经初始化的虚拟节点数组的末尾如上图的Step2红色箭头指向的位置则初始化第二批虚拟节点如上图Step2对应的红色节点当所有虚拟节点初始化完后将不再做初始化工作如上图的Step3对应的状态 此方案不仅将算法时间复杂度从 O(N) 优化到 O(1) 而且也避免了权重调高场景下带来的问题。如下图所示后端某台机器权重从1调整为2后其QPS平滑的增长到预期比列。 算法效果比较 在同等压测环境下wrk压测工具、500并发、长连接场景、upstream配置2000个server Nginx 官方的 SWRR 算法CPU消耗占比高达39%ngx_http_upstream_get_peer函数。而 VNSWRR 算法在同等条件下CPU消耗占比只有0.27%左右ngx_http_upstream_get_ VNSWRR 函数显而易见 SWRR CPU消耗要高出一个数量级。 在上述压测环境下 Nginx 官方的 SWRR 和改进的 VNSWRR 算法下的QPS处理能力如下图所示其中 VNSWRR 的QPS处理能力相对于 SWRR 算法提升60%左右。 下面我们来做个试验在 upstream 里配置 server 数量变化的场景下对比 VNSWRR 和 SWRR 算法观察 Nginx 的 QPS 处理能力以及响应时间RT变化。 从图中可以发现在 SWRR 算法下当 upstream 里面的 server 数量每增加500台则 Nginx 的 QPS 处理能力下降10%左右、响应RT增长1ms左右而在 VNSWRR 算法下 Tengine 的 QPS 处理能力及RT基本上变化不大。 总结 正是这种大流量场景下才暴露出 Nginx 的一些问题所谓业务与技术相辅相成业务可促使新的技术诞生、新的技术赋能创造新的业务。 VNSWRR 算法即拥有 SWRR 算法的平滑、分散特点也避免了其缺陷。同时在新算法下时间复杂度也从 O(N) 调整为 O(1) 在大规模场景下 VNSWRR 的QPS处理能力相对于 Nginx 官方的 SWRR 算法提升60%左右。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.zqtcl.cn/news/405876/

相关文章:

  • 网站稳定性深圳网站建设有限公司 2019
  • 西城专业网站建设公司哪家好优秀的网站建设解决方案
  • 做网站接广告手机百度引擎搜索入口
  • html5网站怎么建设后台怎么弄厦门微信网站建
  • 幻影图片一键制作网站建筑工程是干嘛的
  • 技术支持 东莞网站建设东莞天助免费网站申请域名39939cn
  • js打开网站wordpress线报主题
  • 怎么做网站首页弹幕外贸网站高端定做
  • asp.net mvc 做网站做网站原型的软件
  • wordpress网站恢复北京app建设 网站开发公司
  • 给别人做设计的网站aso优化师工作很赚钱吗
  • 网店网站建设规划方案入门编程软件
  • 网站布局企业安全文化建设导则
  • 胶东国际机场建设有限公司网站2021重大军事新闻
  • 企业网站优化的方式萍乡市建设局网站王丽
  • 做网站的收费标准社保网上服务大厅
  • php网站开发安全网站建设管理教程视频教程
  • 网站建设的空间是什么意思海络网站
  • 深圳华强北今晚网站优化推广公司
  • 网站建设行业好做吗太原网站改版
  • 寿光企业建站流程个人网站用什么软件
  • 网站建设与管理自考本全国卷wordpress 关闭文章修订
  • 兴义市建设局网站首页网站开发项目实训总结
  • 个人网站空间收费网络软文营销案例
  • 网站开发文件结构组成微网站移交
  • 西安全网优化 西安网站推广网页浏览器缩略词
  • 网站开发及企业推广营销型网站建设怎么收费
  • 网站建设与管理ppt课件百度云盘关键词推广营销
  • c asp.net网站开发书宁波建设业协会网站
  • 政务网站建设发言材料知名互联网公司有哪些