性能超群的HTTP服务器,C++服务器引擎发布
2020-09-03 17:20  浏览:806  搜索引擎搜索“手机低淘网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机低淘网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

(原标题:性能超群的HTTP服务器,C++服务器引擎发布)

9月3日,搜狗公司正式宣布开源C++服务器引擎——Sogou C++Workflow。目前Workflow支撑着搜狗几乎所有后端C++在线服务包括所有搜索服务,云输入法,在线广告等,每日处理数百亿请求,引擎一经发布就在 GitHub 上引起众多开发者关注。这款引擎不仅实现了高性能、轻量级的落地,还创新性的引入任务流概念,实现了计算任务与通信任务的统一和协同调度。基于Workflow引擎,开发者可以方便的实现复杂的业务逻辑,并进一步满足对高并发、高性能C++服务器程序的开发需求。

轻量级、高性能, Sogou C++ Workflow助力企业降本增效

Workflow在设计之初,就秉持着高性能与轻量级两个核心理念。长久以来,业界中优化服务器性能都主要专注于如何跑满cpu、如何单独地让网络请求极速响应等方面。而此次上线搜狗Workflow则更专注于如何让各种网络资源被具体的调度器管理,使其尽可能地全部调度起来。

另一方面,对多通信计算资源融为一体的解决方案,进一步提升了Workflow引擎的性能。过去开发者在面临选择高吞吐网络框架时,需要自己面对不同计算资源比例而划分不同大小的线程池。然而每种计算具体资源需求比例是动态变化的,重要性也不一样,后端响应时长也是动态变动。如今在workflow的加持下,C++服务器引擎也能像Go语言一样,实现网络资源异步调度,并且进一步打通计算,磁盘等资源。

引入任务流概念,是搜狗Workflow引擎的另一亮点。Workflow将资源高度封装,用户再也接触不到连接池、线程池、包括想要做aio时的文件fd与各种异步通知机制。这就意味着,在开发阶段开发人员仅仅需要了解业务关系而不用关心内部细节,帮助开发者们实现自己复杂的业务逻辑。

开发人员可以利用Workflow封装好的各种任务来动态或静态组建自己的业务逻辑,如下图所示,不同类型的任务都可以被串行、并行到一起:

除了各种创新设计以外,workflow还拥有比其他C++框架更友好的用户体验。过去许多企业自己搭建的服务器平台,在设计之初并未考虑到对多平台、多协议的支持,导致当新需求出现之时,开发者不得不通过自定义框架等方式来解决这个问题。Workflow原生实现了对http、redis、mysql和kafka等协议,可以直接作为这些协议的客户端使用。并且在其基础上开发了一套更加易用的Sogou RPC,实现与brpc和thrift互通,IDL支持protobuf和thrift,并且可以通过http+json或IDL实现跨语言,Sogou RPC项目也会在不久的将来开源。

Http Server性能实测:Sogou C++Workflow VS nginx、brpc

为了充分的体现出Workflow在性能上的优势,搜狗也提供了Workflow和nginx、brpc两个比较主流知名的系统一起做的http server性能对比,

测试环境:

这里选取了最基本的测试场景:wrk或者wrk2跨机做client,单server,长连接,CPU:40核 E5-2630 v4 @ 2.20GHz,内存:192GB,网卡:25000Mb/s。nginx配置了auto的进程数(与核数一致),brpc配置了40个nthreads,workflow配置了16个poller线程和20个handler线程。

测试一:不同并发数对QPS的影响(越高越好)

结论:随着压测并发数的增加,server的QPS会随着增高。可以看到Workflow无论是低并发数还是高并发数的情况下,QPS依然比nginx和brpc要高,尤其是并发数超过128的时候优势更加明显,Workfow对于小包基本能保证50w的QPS,说明内部对网络资源的高并发调度做了很多优化。

测试二:不同数据大小对QPS的影响(越高越好)

结论:此处的返回包大小是http请求的body大小,随着返回包增大,QPS会有所下降,我们希望QPS依然尽可能保持平稳不要下降得太快。Workflow在同并发下的性能依然比其他两个系统要好,说明网络收发和其他调用之间的调度协调得更好。

测试三:固定QPS下的延迟分布CDF图(越左越好,越直越好)

结论:本测试由wrk2进行固定QPS的压测,其中还有1%的长尾请求Outiler,长尾请求不计入结果,因为我们关注的是模拟真实情况下普通请求能否被及时处理。由于nginx在其他测试中性能略差一截,因此没有对其进行CDF对比。可以看到在不同比例的分布中,Workflow的延迟更低、且最慢的那些(0.99到1.00之间)延迟增长也相对缓慢,说明Workflow对长尾处理更及时。

通过对比,可以发现Workflow的确在核心性能上有着自己独到的优势,对于很多开发者来说,往后也就多了一种选择,遇到合适的应用场景,Workflow无疑会帮助开发者大大提升开发效率,确保项目成功。

开源核心技术,让搜狗走向开发者生态的前沿



开源如此“硬核”的服务器引擎并不常见。许多科技公司都在花费极大精力对自己的产品、技术进行保密,核心算法更是秘而不宣。而近年来,搜狗却走了一条与大众相反的道路。不仅是Workflow,之前搜狗还相继开源了机器阅读理解工具SMRC、内部项目管理系统Cynthia在内的多项核心技术和工具。事实上,搜狗正是通过的不断对核心技术的开源,遵守并理解开源社区文化,才能推动企业本身的技术进步,吸纳更多优秀的开发者投入其中,为相关产品的后续发展持续输送技术养料和创造力。

想要在日趋激烈的互联网市场中获得话语权,就必须积极的制定标准,始终站在开发者生态的前沿,建立可持续的竞争优势,让产品被更多用户喜爱并使用。未来,在开源的道路上,搜狗还会不断将相关先进技术持续对外开放,发挥自身领域的专业能力与力量,推动开源运动的进一步普及。

发布人:61a0****    IP:117.173.23.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发