異數OS國産CPU平台移植項目需求分析
目錄
-
- 異數OS國産CPU平台移植項目需求分析
- 項目立項背景
- 項目需求分析
- 異數OS性能名額簡介
-
- 1.TCP協定棧性能測試
- 2.異數OS-織夢師-水母 消息隊列性能測試對比
- 非批量消息模式
- 批量消息模式
- 3.異數OS-織夢師-牽手 LPC RPC性能測試對比
- 4.異數OS-織夢師-水桶 RAM disk 網絡共享存儲方案性能測試對比
-
- 項目實施研發工作内容
- 異數OS項目技術特性資源介紹
- 異數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