加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Nginx多历程高并发、低时延、高靠得住机制在缓存(redis、memcache)twemproxy署理中的应用

发布时间:2019-03-13 16:13:45 所属栏目:编程 来源:y123456yz
导读:1. 开拓配景 现有开源缓存署理中间件有twemproxy、codis等,个中twemproxy为单历程单线程模子,只支持memcache单机版和redis单机版,都不支持集群版成果。 因为twemproxy无法操作多核特征,因此机能低下,短毗连QPS约莫为3W,长毗连QPS约莫为13W,同时某些

Linux 内核历程调治器生成就具有被称为 软 CPU 亲和性(affinity) 的特征,这意味着历程凡是不会在处理赏罚器之间频仍迁徙。这种状态正是我们但愿的,由于历程迁徙的频率小就意味着发生的负载小。详细参考sched_setaffinity函数。

4.3.5 worker历程非常怎样镌汰对营业的影响?

在现实线上情形中,常常呈现这样的环境:某个多线程处事跑几个月后,由于未知缘故起因历程挂了,最终造成整个处事城市不行用。

这时辰,master+多worker的多历程模子就浮现了它的上风,假如代码有潜匿的而且不轻易触发的bug,某个时辰假如某个哀求触发了这个bug,则处理赏罚这个哀求的worker历程会段错误退出。可是其他worker历程不会收到任何的影响,也就是说假如一个改革后的twemproxy起了20个worker历程,某个时辰一个潜匿bug被某个哀求触发,则只有处理赏罚该哀求的历程段错误非常,其他19个历程不会受到任何影响,该潜匿bug触发后影响面仅为5%。假如是多线程模子,则影响面会是100%。

假如某个worker历程挂了,master父历程会感知到这个信号,然后从头拉起一个worker历程,实现刹时无感知”拉起”规复。以下为模仿触发非常段错误流程:

Nginx多历程高并发、低时延、高靠得住机制在缓存(redis、memcache)twemproxy署理中的应用

如上图所示,杀掉31420 worker历程后,master历程会立马在拉起一个31451事变历程,实现了快速规复。

多历程非常,自动”拉起”成果源码,可以参考如下demo:

https://github.com/y123456yz/reading-code-of-nginx-1.9.2/blob/master/nginx-1.9.2/src/demo.c

5 收集优化

5.1 网卡多行列

在现实上线后,发明软间断过高,险些大部门都齐集在一个可能几个CPU上,严峻影响客户端毗连和数据转发,qps上不去,时延发抖锋利。

RSS(Receive Side Scaling)是网卡的硬件特征,实现了多行列,可以将差异的流分发到差异的CPU上。支持RSS的网卡,通过多行列技能,每个行列对应一其间断号,通过对每其间断的绑定,可以实现网卡间断在cpu多核上的分派,最终到达负载平衡的浸染。

5.2 可骇的40ms

原生twemproxy在线上跑得进程中,发明时延颠簸很大,抓包发明个中部门数据包应答呈现了40ms阁下的时延,拉高了整体时延抓包如下(借助tcprstat器材):

办理步伐如下:在recv体系挪用后,挪用一次setsockopt函数,配置TCP_QUICKACK。代码修改如下:

6 Twemproxy改革前后机能比拟 (时延、qps比拟)

6.1 线上真实流量时延比拟

6.1.1 改革前列上twemproxy集群时延

线上集群完全回收开源twemproxy做署理,架构如下:

Nginx多历程高并发、低时延、高靠得住机制在缓存(redis、memcache)twemproxy署理中的应用

未改革前列上twemproxy+memcache集群,qps=5000~6000,长毗连,客户端时延漫衍如下图所示:

在twemproxy呆板上行使tcprstat监控到的网卡时延如下:

从上面两个图可以看出,回收原生twemproxy,时延高,同时发抖锋利。

6.1.2 参照nginx改革后的twemproxy时延

线上集群一个twemproxy回收官方原生twemproxy,另一个为改革后的twemproxy,个中改革后的twemproxy设置worker历程数为1,保持和原生开源twemproxy历程数同等,架构如下:

Nginx多历程高并发、低时延、高靠得住机制在缓存(redis、memcache)twemproxy署理中的应用

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读