1. 程式人生 > >異數OS國產CPU平臺移植專案需求分析

異數OS國產CPU平臺移植專案需求分析

異數OS國產CPU平臺移植專案需求分析

目錄


專案立項背景


  • 國產CPU產業情況

隨著中國國內晶片市場的剛需逐漸增長,市場的政治風險逐漸加大,對國內自主晶片特寫是CPU的需求逐漸上升為不可避免的政治問題,但由於多年來嚴重依賴市場買辦的思維盛行,導致國產晶片開發生態幾乎被破壞性打擊毀滅,因此僅存的幾家國產CPU廠商由於缺乏市場的支援,而無法開發出與國際主流CPU競爭的產品,技術與效能差距甚至超過10年,在政府不能破解的體制約束下,國產CPU急需尋找另外的生存路線打破這種僵局。


  • 軟體生態目前情況

目前軟體生態領域,由於linux等作業系統基礎理論限制導致不可能做顛覆式創新的改變,在linux之上,4層以上的軟體生態無法發揮利用新硬體的IO效能(linux 僅能發揮百兆網絡卡io能力,因此io密集型應用只能發揮新硬體效能的百分之一甚至千分之一),因為這一問題,出現了各種複雜的分散式叢集方案以及訊息中介軟體方案,但他們本身由於linux約束並不能利用新硬體的IO效能,僅僅是通過分散式增加硬體來擴充效能,這使得七層以上的伺服器採購成本以及研發運維人力成本相比四層以下產品會高出100倍,因此伺服器領域利潤空間也更高,這大大的增加了軟體開發以及部署應用的成本,導致軟體研發成為資本遊戲的附屬品,在資本遊戲的驅動下,製造並加劇了社會通貨膨脹,造成了嚴重的社會資源浪費,加劇了社會矛盾。

在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