异数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


posted @ 2018-07-30 15:13  yds_086  阅读(364)  评论(0编辑  收藏  举报