搜狗服务器引擎Sogou C++ Workflow开源啦!

简介: 搜狗服务器引擎Sogou C++ Workflow开源啦!

搜狗公司开源了其 C++ 服务器引擎 Sogou C++ Workflow,这一引擎实现了高性能、轻量级落地,还引入任务流概念,实现了计算任务与通信任务的统一和协同调度。
搜狗服务器引擎Sogou C++ Workflow开源啦!搜狗服务器引擎Sogou C++ Workflow开源啦!

据介绍,目前该引擎支撑着搜狗几乎所有后端 C++ 在线服务,包括所有搜索服务、云输入法与在线广告等,每日处理数百亿请求。

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

搜狗服务器引擎Sogou C++ Workflow开源啦!搜狗服务器引擎Sogou C++ Workflow开源啦!

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

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

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

根据资料,除了各种创新设计以外,Sogou C++ Workflow 还拥有友好的用户体验。Sogou C++ Workflow 原生实现了对http、redis、mysql 和 kafka 等协议的支持,可以直接作为这些协议的客户端使用。并且在其基础上开发了一套更加易用的 Sogou RPC,实现了与 brpc 和 thrift 互通,并且可以通过 http+json 或 IDL 实现跨语言。

开发团队透露,Sogou RPC 项目也会在不久的将来开源。

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

搜狗团队也提供了 Sogou C++ 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 的影响(越高越好)
搜狗服务器引擎Sogou C++ Workflow开源啦!搜狗服务器引擎Sogou C++ Workflow开源啦!

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

测试二:不同数据大小对 QPS 的影响(越高越好)
搜狗服务器引擎Sogou C++ Workflow开源啦!搜狗服务器引擎Sogou C++ Workflow开源啦!

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

测试三:固定 QPS 下的延迟分布 CDF 图(越左越好,越直越好)
搜狗服务器引擎Sogou C++ Workflow开源啦!搜狗服务器引擎Sogou C++ Workflow开源啦!

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

相关文章
|
8天前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
241 14
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
10天前
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
112 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
13天前
|
存储 弹性计算 安全
云服务器:数字时代的“弹性算力引擎”
云服务器是基于云计算技术的虚拟化计算资源,可将物理硬件分割为多个独立实例,支持弹性伸缩、按需付费、高可用性及便捷管理。其典型应用场景包括网站托管、数据存储分析、开发测试与高并发业务支撑。选择时需关注服务商资质、网络质量与技术支持。非凡云依托美国节点,提供稳定算力支持,具备优质BGP网络、灵活配置与免费安全防护,适合搭建海外站点或全球业务拓展。
78 1
云服务器:数字时代的“弹性算力引擎”
|
24天前
|
自然语言处理 并行计算 C++
FlashTokenizer: 基于C++的高性能分词引擎,速度可以提升8-15倍
FlashTokenizer是一款高性能CPU分词引擎,专为BERT等Transformer架构优化。基于高效C++实现与多线程并行处理,性能较传统分词器提升8-15倍,显著加速文本预处理。支持跨平台安装,适用于大规模文本处理、实时NLP应用及资源受限场景,助力开发者提升模型推理效率、降低硬件成本。
78 13
FlashTokenizer: 基于C++的高性能分词引擎,速度可以提升8-15倍
|
1月前
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
76 1
|
5月前
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
5月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
6月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1217 3
|
6月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
153 4
|
6月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
108 1

热门文章

最新文章

下一篇
oss创建bucket