.

异数OS 织梦师-Xnign(四)– 挑战100倍速Nginx,脚踩F5硬件负载均衡


本文来自异数OS社区


github: https://github.com/yds086/HereticOS

异数OS社区QQ群: 652455784

异数OS-织梦师(消息中间件 ,游戏开发方向)群: 476260389

异数OS-织梦师-Xnign(Nginx方向)群: 859548384


  • 异数OS 织梦师-Xnign(四)– 挑战100倍速Nginx,脚踩F5硬件负载均衡
  • 本文来自异数OS社区
  • 织梦师-Xnign 产品简介
  • 与众不同的特性
  • 织梦师-Xnign 方案说明
  • 织梦师-Xnign测试成绩
    • 长连接128 Http请求线程400字节页面
    • 长连接300W Http请求线程400字节页面
    • 短连接128 Http请求线程400字节页面
    • 短连接300W Http请求线程400字节页面
    • 长连接128 Http请求线程1300字节页面理论带宽测试
    • 长连接128 Http CGI请求线程Echo测试
  • 相关性能对比
    • 其他

织梦师-Xnign 产品简介


异数OS 织梦师-Xnign 使用异数OS技术设计实现解除7层应用IO性能约束,带来http请求的10到100倍IO性能的提升,Xnign是Nginx的倒写,定位与Nginx目标类似,可以做Http cache静态页面加速,cgi可做精准L7业务负载均衡,可做大型网站前端流量接入,定制业务层精确分载。


与众不同的特性


  1. 简单的框架,实现简单,由于使用BIO方案,因此httpserver主框架代码仅30行,非常轻量级,复杂度仅有Nginx的万分之一。
  2. 高性能 ,由于异数OS 的IO加速,http请求处理性能是Nginx性能的100倍(静态页面cache 以及空负载cgi),实测每核长连接最大250W QPS,短连接120W QPS,最大带宽2.8GB/s(220WQPS),并发请求容量提升10倍,轻松实现300W活跃并发请求,理论推算可单路最大带200G双路400G网络流量
  3. 方便定制 ,由于BIO以及RPC技术的简单易用,因此非常方便客户自行定制实现各类产品,技术难度降低很多。
  4. 精准业务层负载均衡方案, 通常的负载均衡方案可分为系统级负载均衡,比如F5 LVS,应用级负载均衡,比如Nginx,HAproxy,业务级负载均衡,比如消息队列,RPC等(rocketmq,dubbo),系统级负载均衡性能最高,但是负载均衡策略不够精确,通常是采集负载机系统的压力信息,如CPU 内存磁盘网络等资源占用来做负载均衡依据,但这类信息不能提前预警应用压力,通常发现时,目标负载系统已处于雪崩宕机的边缘,药石难救,因此受用面很窄,比如F5并不能为12306秒票业务做准确压力均衡分载,应用级负载均衡则相对更加准确,其可以收集目标应用的请求阻塞延迟情况来判断应用是否有过载可能,但其无法感知业务层负载,比如应用由于是分布式环境,其本身可能是空载,其CPU 以及IO都很空闲,但其业务请求队列可能已满载,后端数据库却在满载运行,这时再提交请求给应用,应用虽然能及时响应请求,但请求实际上都进入队列,这导致请求可能远远超时无法完成,因此业务级别的精确负载均衡成为更靠谱的需求,业务级负载均衡可以精准感知应用业务真实负载情况,根据真实业务负载压力,但一般的业务层负载均衡性能较低并发请求容量不足,并不能提供给门户站点入口使用,所以真正使用场合是在前面配合系统级负载均衡和应用级负载均衡构成三级负载均衡方案,这样就使得集群系统变的复杂并运维成本高昂,Xnign则通过高性能RPC技术以及消息队列技术为业务级负载均衡带来比系统级负载均衡高10倍的性能(F5 L7 CPS),因此大大降低负载均衡方案的运维成本和设计成本。

织梦师-Xnign 方案说明


1.HttpCreater 分布式环境中通过HttpCache提供的Rpc接口管理HttpCache,可以增删Xnign中HttpCache的静态页面.
2.HttpCache目前是一个静态页面的内存中的 HashMap。
3.HttpServer接收HttpClient的http请求,静态请求查询HttpCache并返回响应,cgi请求目前测试是个Echo,返回请求的cgi参数,未来会定制推送给业务的空闲Rpc线程,或者接入织梦师水母方案,以此实现精准的业务级负载均衡方案。
4. Rpc Manager为APP应用服务器提供RPC注册服务,APP应用服务器启动后在Rpc Manager注册关注的业务Topic,实现业务订阅,Rpc Manager为APP应用创建Rpc推送服务。


织梦师-Xnign测试成绩

测试项目分为静态页面的短连接性能测试,长连接性能测试,海量并发链接性能测试,理论每核最大带宽性能测试,cgi echo性能测试,测试环境都是单核2670v1 82599双口10G光纤 DPDK环境,HttpCache页面数量初始化为100W,请求池随机生成128K条,由于网卡条件约束,因此理论最大带宽测试使用异数OS软件交换机完成。

长连接128 Http请求线程400字节页面

长连接300W Http请求线程400字节页面

短连接128 Http请求线程400字节页面

短连接300W Http请求线程400字节页面

长连接128 Http请求线程1300字节页面理论带宽测试

2.8GB/s,理论单核可带满25G网卡,单节点预计带满200G,双节点400G。

长连接128 Http CGI请求线程Echo测试

相关性能对比


织梦师-Xingn 各项测试

测试特性 长连接128链接 长连接300W链接 短连接128并发线程请求 短连接300W并发线程请求 128线程长连接Cgi Echo
IOPS 2.5M 2.1M 1.2M 470K 2.0M
平均延迟 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量
最小延迟 10us 10us 10us 10us 10us

相关产品对比测试

数据来自网络,环境目标不同,选取目标产品最大性能值,成绩仅供参考。

引用的其他产品测试成绩

Nginx F-stack
https://github.com/F-Stack/f-stack

seastar 成绩引用
https://github.com/scylladb/seastar/wiki/HTTPD-benchmark

测试特性 织梦师-Xingn长连接 织梦师-Xingn短连接 Seastar Httpd长连接 F-stack Nginx短连接 (CPS) F-stack Nginx长连接(RPS) taomcat nio http F5 VPR-LTM-C2400-AC(L7 CPS)
IOPS 2.5M 1.2M 32W 7W 25W 3000 100W(4核)
平均延迟 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量 调用性能/链接数量
最小延迟 10us 10us 1-10ms 1-10ms 1-10ms 1-10ms

其他

通过上面对比测试,相对Nginx,织梦师-Xnign可加速Http请求100倍,并发请求性能提高10倍以上,HttpCache算是可以独立落地的产品了,有需要对静态页面加速的同学可以联系购买,需要L7业务级负载均衡定制的可加社区咨询合作开发。

异数OS 织梦师-Xnign(四)-- 挑战100倍速Nginx,脚踩F5硬件负载均衡相关推荐

  1. 异数OS 织梦师-水母(一)--消息队列篇 1

    异数OS 织梦师-水母(一)–消息队列篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数O ...

  2. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地...

    . 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地 本文来自异数OS社区 github: https://github.com/yds086/Here ...

  3. 异数OS 2017 DPDK 峰会观后感

    1.DPDK in Container 使用虚拟网卡设备技术为每一个容器分配一个IP 网卡适配器(queue).容器技术可以解决虚拟机技术中虚拟机过于臃肿,难于热迁移的问题,可能可以代替美团OVS方案 ...

  4. (带手机版数据同步)未解之谜新闻网类网站源码 奇闻异事网站织梦模板

    介绍 本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围极广,不仅仅局限于一类型的其企业,未解之谜.奇闻异事类的都可以用该模板.你只需要把图片和产品内容换成你的即可,颜色都可以修改,改完让你耳目 ...

  5. 织梦cms第四版仿七猫技术导航源码 附安装教程

    介绍: 织梦系统仿七猫技术导航源码,包含了安装教程和使用教程,大家可以拿着这套源码来搭建个技术导航来玩 网站源码集成导航栏目.资讯栏目.在线工具.视频.高清壁纸等 内置生成网站地图插件  在插件生成网 ...

  6. Ansible(四)ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用

    1.ansible roles简介 <1> roles 用于层次性.结构化地组织playbook. <2> roles 能够根据层次型结构自动装载变量文件.tasks以及han ...

  7. 异数OS-织梦师-管仲(八) 并发危机解决之道

    异数OS-织梦师-管仲(八) 并发危机解决之道 文章目录 异数OS-织梦师-管仲(八) 并发危机解决之道 前言 管仲佐纠 <管子>专用申明 解不开的并发障碍 Redis的并发障碍 MapR ...

  8. 织梦 php 调用栏目,织梦dedecms如何调用当前栏目文章数

    织梦dedecms如何调用当前栏目文章数? 织梦dedecms调用当前栏目文章数方法 做模板时,经常需要为每个栏目加上此栏目的文章数.和大家分享下实现的方法,此方法适合5.6及5.7.5.7sp1其它 ...

  9. 织梦同步静态文件到服务器,静态网站添加到织梦

    静态网站添加到织梦 内容精选 换一换 本文介绍了弹性文件服务SFS各特性版本的功能发布和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验. 开启网页防篡改时,您需为指定的主机分配一 ...

  10. cstring只获取到第一个数_一文讲透 Dubbo 负载均衡之最小活跃数算法

    (给ImportNew加星标,提高Java技能) 作者:why技术(本文来自作者投稿) 本文是对于Dubbo负载均衡策略之一的最小活跃数算法的详细分析.文中所示源码,没有特别标注的地方均为2.6.0版 ...

最新文章

  1. Gut Microbes:中科院微生物所王军组在新冠病人肠道病毒组研究取得新进展
  2. 定位的准确度与精度指标定义——RMS,CEP,Sigma
  3. JavaIO(输入输出)——字节流读写文件
  4. 条码扫描枪----针对MS3391扫码器的工作原理
  5. linux下面的浏览器不停自动打开新网页
  6. 你还不知道怎么退出 Vim?
  7. python sys模块_Python 基础(二十):sys 模块
  8. Spring Aop 切点表达式
  9. visio网络拓扑图_人才测评模型是什么?5步了解好看模型图
  10. java 怎么接收xml_Java如何提取完整的XML块
  11. 打开网页出现运行脚本错误的解决技巧
  12. Hive常见的存储格式的区别与应用场景
  13. Python覆盖率分析工具_Coverage
  14. 你的第一个自动化测试:Selenium 自动化测试
  15. ora-12514解决方法
  16. python jpg压缩,Python 实现图片大小压缩
  17. 基于Python实现的死链接自动化检测工具
  18. 冰雪之城鸿蒙碎片,冰雪之城地图推荐:
  19. 安装Jdeveloper 12C
  20. 云宏大讲坛 | Ceph分布式存储高性能设计

热门文章

  1. Java面试-重写和重载的规则
  2. c语言运行太短怎么毡筒,C语言程序设计 最简单的C程序设计.ppt
  3. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
  4. 解决Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)问题
  5. LRc2022 M1原生支持功能介绍,Lightroom Classic 2022 Mac M1专用 ,解决lr闪退打不开卡死等一系列问题
  6. 光纤交换机使用方法及应用方案详解
  7. jav使用python模型实现方案
  8. 谷歌翻译 翻译文档爬虫
  9. 非度量多维标度_用R语言做非度量多维尺度分析(NMDS)
  10. ubuntu电源管理