异数OS国产CPU平台移植项目需求分析
异数OS国产CPU平台移植项目需求分析
目录
项目立项背景
- 国产CPU产业情况
随着中国国内芯片市场的刚需逐渐增长,市场的政治风险逐渐加大,对国内自主芯片特写是CPU的需求逐渐上升为不可避免的政治问题,但由于多年来严重依赖市场买办的思维盛行,导致国产芯片开发生态几乎被破坏性打击毁灭,因此仅存的几家国产CPU厂商由于缺乏市场的支持,而无法开发出与国际主流CPU竞争的产品,技术与性能差距甚至超过10年,在政府不能破解的体制约束下,国产CPU急需寻找另外的生存路线打破这种僵局。
- 软件生态目前情况
目前软件生态领域,由于linux等操作系统基础理论限制以及不可能做颠覆式创新的改变,导致在linux之上4层以上的软件生态无法发挥新的硬件的IO性能(linux 仅能发挥百兆网卡io能力,因此io密集型应用只能发挥新硬件性能的百分之一甚至千分之一),因为这一问题因此出现各种复杂的分布式集群方案以及消息中间件方案,但他们本身由于linux约束并不能利用新硬件硬件的IO性能,仅仅是通过增加硬件来扩充性能,这大大的增加了软件开发以及部署应用的成本,导致软件研发成为资本游戏的附属品,在资本游戏的驱动下,制造并加剧了社会通货膨胀,造成了严重的社会资源浪费,加剧了社会矛盾。
在linux 4层以上应用IO性能表现不济的情况下,异数OS通过操作系统基础理论的颠覆式创新,开发了自主的操作系统内核以及TCP/IP协议栈,解除了4层以上应用的IO性能瓶颈,带来100倍的IO 性能提升,以及保守情况下1000倍的并发任务容量性能的提升,由于采用寄宿传统操作系统的方案,所以可在兼容利用已有传统软件生态的情况下通过设计新的异数OS应用带来上述传统OS被制约的能力,因此有望在未来20年内有机会成为未来主流操作系统。
4层以下软件由于不受linux操作系统IO性能污染,因此并没有瓶颈和门槛,各类3层交换机产品竞争已白热化同质化,利润空间很小,很多小企业也被逼出局,而在虚拟化等领域基本上是intel主导并提供方案,国产硬件软件几乎无法进入并与之竞争。
项目需求分析
从软件生态目前遇到的障碍以及异数OS 4层以上应用软件的IO性能表现看,在国产CPU技术以及性能不济的情况下发展国产CPU的市场机遇还是有的,但是要找准一个方向,通过与异数OS合作,进入到云服务器7层IO密集型应用领域,保守估计可以带来linux+intel 平台的10倍IO性能表现,以此获得市场竞争力,比如异数OS开发的织梦师-水母消息队列,相对阿里云RocketMQ,消息性能提升100-1000倍,而消息延迟仅为RocketMQ的百分之一(20us),一台异数OS相当于100或者1000台linux RocketMQ 集群的性能。
异数OS性能指标简介
测试数据均在intel E5 2670v1 64G内存 82599ES双口万兆网卡 环境完成,宿主操作系统为debian 7,没有特别说明的情况下,测试目标成绩均指单核测试成绩。
1.TCP协议栈性能测试
1.双口双核,将网卡两个口用光纤回环链接,CPU3 创建TCP server,CPU 5创建 指定连接数量的TCP Client线程(每链接4线程),测试方案使用 异数OS TCP协议栈测试(三)–长连接篇的的测试方法,成绩是ECHO的iops成绩。
1.单口单核,将网卡1个口的TX RX光纤回环链接,CPU3 创建TCP server,同时创建 指定连接数量的TCP Client线程,测试方案使用 异数OS TCP协议栈测试(三)–长连接篇的的测试方法,成绩是ECHO的iops成绩。
3.UDP NIC回环,分别在双口双核 单口单核模式下,创建两个线程,两个线程绑定对应的网卡适配器,对发UDP包记录下收发包的速度,成绩是收包发包循环的次数,一次收一个发把一个包。
测试结果
| 网卡接口平台 | 测试用例 | NIC UDP 回环 | 1链接 | 8TCP链接 | 32TCP链接 | 64TCP链接 | 128TCP链接 | 256TCP链接 | 600WTCP链接 |
|---|---|---|---|---|---|---|---|---|---|
| dpdk | 双口双核 | 10M | 136K | 1.037M | 3.47M | 4.06M | 4.2M | 4.4M | 3.1M 会丢包丢链接 |
| dpdk | 单口单核 | 9M | 136K | 1.018M | 2.35M | 2.5M | 1.95M | 1.9M | 950k |
| netmap | 双口双核 | 8M | 131K | 940k | 3.6M | 4.2M | 4.5M | 4.7M | 2.3M |
| netmap | 单口单核 | 6M | 131K | 940k | 2.2M | 2.8M | 2.7M | 2.4M | 1.5M |
| 异数OS软件交换机 | 双口双核 | 13M | 1.8M | 4.6M | 4.6M | 4.6M | 4.7M | 4.8M | 3.3M |
| 异数OS软件交换机 | 单口单核 | 14M | 5.3M | 5.0M | 5.0M | 4.95M | 4.95M | 5.03M | 4.3M |
2.异数OS-织梦师-水母 消息队列性能测试对比
其他对比消息队列测试成绩引用
kafka 成绩
http://www.51testing.com/html/49/n-3721449.html
RocketMQ成绩
http://jm.taobao.org/2016/04/01/kafka-vs-rabbitmq-vs-rocketmq-message-send-performance/?utm_source=tuicool&utm_medium=referral
非批量消息模式
1 Borker (单核)非批量消息模式,每消息100字节,其他产品数据来自网络参考数据。
| 测试特性 | 异数OS虚拟交换机128生产者 | 异数OS虚拟交换机600W生产者 | 异数OS-DPDK 128生产者 | 异数OS-DPDK 600W生产者 | kafka | RocketMQ |
|---|---|---|---|---|---|---|
| 仅入队性能 | 4M | 2M | 3.3M | 160W | 12w | 12w |
| 入队出队性能 | 2M | 1M | 1.6M | 80W | 6w | 6w |
| 仅入队延迟 | <1us | <1us | 10us | 10us | 10ms | 10ms |
| 入队到出队延迟 | <1us | <1us | 20us | 20us | 10ms | 10ms |
批量消息模式
1 Borker (单核)批量消息模式,每消息10字节,批量每组10个消息。
| 测试特性 | 异数OS虚拟交换机128生产者 | 异数OS虚拟交换机600W生产者 | 异数OS-DPDK 128生产者 | 异数OS-DPDK 600W生产者 | kafka | RocketMQ |
|---|---|---|---|---|---|---|
| 仅入队性能 | 40M | 20M | 33M | 1600W | 200w | 12w(不支持批量) |
| 入队出队性能 | 20M | 10M | 16M | 800W | 100w | 6w |
| 仅入队延迟 | <1us | <1us | 10us | 10us | 10ms | 10ms |
| 入队到出队延迟 | <1us | <1us | 20us | 20us | 10ms | 10ms |
3.异数OS-织梦师-牵手 LPC RPC性能测试对比
go+stdrpc thrift dubbo成绩引用
http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/
https://blog.csdn.net/quuqu/article/details/79304614
纤手 5000W 600W是指LPC RPC实例的数量,表示系统中同时并发调用LPC或者RPC的能力,每个LPC RPC都对应一个代理存根以及一个TCP链接。
| 测试特性 | 纤手 5000W LPC | 纤手 5000W RPC跨核 | 纤手 600W-RPC TCP直连 | 纤手 600W RPC TCP中间人 | go+stdrpc | thrift | dubbo |
|---|---|---|---|---|---|---|---|
| 最大调用性能 | 20M | 8M | 4M | 2M | 30W | 7W | 20W |
| 平均延迟 | 调用性能/链接数量 | 调用性能/链接数量 | 调用性能/链接数量 | 调用性能/链接数量 | 10ms+调用性能/链接数量 | 10ms+调用性能/链接数量 | 10ms+调用性能/链接数量 |
| 最小延迟 | <1us | 10us | 10us | 10us | 10ms | 10ms | 10ms |
4.异数OS-织梦师-水桶 RAM disk 网络共享存储方案性能测试对比
水桶 RAM disk是一种为了加速小块数据随机读写性能做的一种网络共享存储解决方案,可作为磁盘缓冲,测试创建一个24GB网络共享盘,使用TCP直连的异数OS RPC方案设计了RAM网盘存储接口,下面是与intel SSD 900p的性能对比(2018年性能最高的SSD).
| 测试特性 | 水桶 64字节 单线程随机读 | 水桶 64字节 64线程并发随机读 | 水桶 双核RSS聚合64字节 64线程随并发机读 | Intel 900P 多队列4K随机读 | Intel 900P 单队列4K随机读 |
|---|---|---|---|---|---|
| IOPS | 13W | 350W | 650W | 55W | 10W |
项目实施研发工作内容
1.国产CPU厂商需提供相关支持,包括体系架构方案,编译器工具链,相关硬件开发与定制。
2.由国产CPU厂商或者相关厂商开发相应的宿主OS环境,包括linux,dpdk,netmap.
3.异数OS根据国产CPU厂商提供的硬件技术方案,移植适配异数OS到宿主OS以及CPU硬件平台。
异数OS项目技术特性资源介绍
github: https://github.com/yds086/HereticOS
异数OS社区QQ群: 652455784
异数OS-织梦师(消息中间件 RPC技术)群: 476260389
异数OS是什么?
https://blog.csdn.net/athlonxpx86/article/details/79944301
异数OS谈发展国产操作系统的问题
https://blog.csdn.net/athlonxpx86/article/details/80087449
异数OS TCP协议栈测试(三)–海量长连接篇
https://blog.csdn.net/athlonxpx86/article/details/79411861
异数OS TCP协议栈测试(四)–网卡适配篇
https://blog.csdn.net/athlonxpx86/article/details/79692761
异数OS 织梦师-水母(一)–消息队列篇
https://blog.csdn.net/athlonxpx86/article/details/80035621
异数OS 织梦师-纤手(二)– LPC RPC篇
https://blog.csdn.net/athlonxpx86/article/details/80174333
异数OS 织梦师-水桶(三)– RAM共享存储方案
https://blog.csdn.net/athlonxpx86/article/details/81015121
线程间击鼓传花测试
https://github.com/yds086/HereticOS/tree/master/test/Event%E5%87%BB%E9%BC%93%E4%BC%A0%E8%8A%B1
sleep 订单并发线程模拟,目前有C# go rust python java的对比测试代码和成绩
https://github.com/yds086/HereticOS/tree/master/test/%E5%B9%B6%E5%8F%91sleep
异数OS国产CPU平台移植项目需求分析的更多相关文章
- 异数OS TCP协议栈测试(五)--关于QOS与延迟
. 异数OS TCP协议栈测试(五)–关于QOS与延迟 ##本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6524 ...
- 国产CPU 申威1621 异数OS基础组件理论性能测试报告
国产CPU 申威1621 异数OS基础组件理论性能测试报告 文章目录 国产CPU 申威1621 异数OS基础组件理论性能测试报告 前言 测试平台 测试项目 SW1621 异数OS 容器虚拟交换机模拟性 ...
- 异数OS谈发展国产操作系统的问题
异数OS谈发展国产操作系统的问题 为什么写本文 最近中兴被美制裁的问题以及红芯使用开源技术宣称国产自主技术引发了舆论不少对国产CPU以及国产操作系统自主技术的讨论,为什么我们国家有BAT,有原子弹,能 ...
- Go语言在国产CPU平台上应用前景的探索与思考
http://www.chinaaet.com/article/3000087559 0 引言 CPU是电子产品的核心,代表着信息产业的发展水平.CPU发展至今已经有四十多年的历史了,实际就是Inte ...
- 异数OS TCP协议栈测试(三)--长连接篇
异数OS TCP协议栈测试(三)--长连接篇 本文来自异数OS社区 github: 异数OS-织梦师(消息中间件)群: 476260389 异数OS TCP长连接技术简介 说起长连接,则首先要谈对 ...
- 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地
. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地 本文来自异数OS社区 github: https://github.com/yds086/Here ...
- 异数OS 织梦师-云(五)-- 容器服务化,绿色拯救未来。
. 异数OS 织梦师-云(五)– 容器服务化,绿色拯救未来. 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652 ...
- 异数OS 织梦师-Xnign(四)-- 挑战100倍速Nginx,脚踩F5硬件负载均衡
. 异数OS 织梦师-Xnign(四)– 挑战100倍速Nginx,脚踩F5硬件负载均衡 本文来自异数OS社区 github: https://github.com/yds086/HereticOS ...
- 异数OS 织梦师-纤手(二)-- LPC RPC篇
异数OS 织梦师-纤手(二)– LPC RPC篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 ...
随机推荐
- codeforces 677D(分层图dp)
Codeforces 677D 传送门:https://codeforces.com/contest/677/problem/D 题意: 给你一个n*m的方格图,每个点有一个权值val,现在要求你从坐 ...
- boostrap-非常好用但是容易让人忽略的地方【6】:role属性
普通样式,鼠标hover没有任何效果 <span>content</span> 加上role属性的样式,鼠标hover会有cursor:pointer的效果 <span ...
- 设计模式2——状态模式State
参考链接: 设计模式之状态模式:https://www.cnblogs.com/haoerlv/p/7777789.html 设计模式系列之状态模式:https://www.jianshu.com/p ...
- 在windows+nginx的curl操作请求超时的问题
之前的项目在apache下进行本地curl操作的时候请求不会超时 后来要在nginx下开发的时候,我在项目中写一个curl操作的test.php文件,请求相同项目下的一个index.php文件,然后c ...
- 在Android上为所欲为的一些技术
https://www.jianshu.com/p/87ce6f565d37Android JNI(一)——NDK与JNI基础 https://www.android-doc.com/guide/co ...
- 前端Tips#2 - 将 arguments 转换成Array的最佳实践
本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 文字讲解 1.先讲结论 有很多种方式将 arguments 转换成数组,那么哪一种方式是最优的? 为节约大伙儿的时间,这里先说一下结论: ...
- Redo与Undo的理解
本文概要本文的原意是一篇个人学习笔记,为了避免成为草草记录一下的流水账,尝试从给人介绍的角度开写.但在整理的过程中,越来越感觉力不从心,一是细节太多了,原以为足够了解的一个小知识点下可能隐藏了很多细节 ...
- Linux学习之路--简介
1 Linux简介 UNIX与Linux发展史 Unix在1969年,美国贝尔实验室的肯汤普森在DEC PDP-7机器上开发出了UNIX系统.Linux出现于1991年,是由芬兰赫尔辛基大学学生李纳斯 ...
- 「UVA10810」Ultra-QuickSort 解题报告
题面 看不懂?! 大概的意思就是: 给出一个长度为n的序列,然后每次只能交换相邻的两个数,问最小需要几次使序列严格上升 不断读入n,直到n=0结束 思路: 交换相邻的两个数,这不就类似冒泡排序吗?但是 ...
- MySQL之分库分表(MyCAT实现)
分库分表介绍 随着微服务这种架构的兴起,我们应用从一个完整的大的应用,切分为很多可以独立提供服务的小应用.每个应用都有独立的数据库. 数据的切分分为两种: 垂直切分:按照业务模块进行切分,将不同模块的 ...