999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于龍芯平臺的Docker評測與分析①

2020-04-24 02:22:52吳平凡劉顯德吳少剛
計算機系統應用 2020年4期
關鍵詞:進程系統

吳平凡,劉顯德,吳少剛

1(東北石油大學 計算機與信息技術學院,大慶 163318)

2(江蘇航天龍夢信息技術有限公司,蘇州 215500)

云計算中最關鍵的技術就是虛擬化技術,用以實現不同獨立應用間的資源共享.傳統的虛擬機技術由于過度的抽象化在實際生產環境中部署繁瑣,資源消耗過多,啟動速度慢.自2013年以來,隨著以Docker為代表的新一代容器技術的快速發展,已成為各大云計算廠商和云計算開發者的首選.對比虛擬機技術,Docker 具有應用部署靈活,資源消耗少,啟動速度快等優點,憑借輕量級的特性在虛擬化領域形成了顛覆性的影響[1].近年來,國內大量互聯網公司也紛紛進行以新一代容器技術為核心進行技術轉型,阿里在2017年11月正式開源了其自研容器Pouch Container.而在2018年5月的全球軟件與運維技術峰會上,知乎計算平臺宣布利用Docker 已實現全部業務和服務的容器化運行.國內外的Docker 相關研究[2,3]更是層出迭見,這些現象表明新一代容器技術火熱的發展趨勢.

在龍芯平臺虛擬化技術研究方面,早在2013年蔡萬偉等人[4,5]就已經做了大量關于MIPS 架構下的內存虛擬化研究.2016年王篁[6]為系統級的二進制代碼兼容性優化提供了解決方案.2019年4月龍芯公司宣布龍芯KVM 虛擬機產品正式發布.而關于容器技術方面,龍芯平臺上Docker 方案還是停留在比較老舊的Fedora21 系統的Docker 老版本上,而新版Docker 需要進一步在龍芯平臺上得以支持.

鑒于X86 的Fedora28 系統默認安裝源為1.13.1 版本的Docker 方案,所以本文針對該版本進行了移植并集成到龍芯平臺的Fedora28 系統中,并測試分析了新版Docker 方案在龍芯平臺下的性能表現,憑借容器內測試程序穩定性更高的優勢,比較了容器內同主頻下龍芯3A3000 與AMD Ryzen 5 (2400 GB)的性能表現.

1 Docker 技術概述

作為一個熱門技術,Docker 正處在快速發展的階段,新版本和新特性不斷涌現[7].1.13 版本作為Docker分離社區版和企業版前的最后一個版本,Docker 方案的整體架構已經逐漸穩定下來,如圖1 所示.

圖1 容器運行時架構圖

如今的Docker[8]方案,對于容器整個生命周期的管理操作都由Containerd 模塊[9]完成,Dockerd 將創建容器和運行容器等操作直接發送給與Containerd 來完成,Containerd 收到請求后將啟動一個Containerd-Shim 進程來管理一個運行的容器,通過Runc 模塊與容器進行交互.Containerd 和Runc 結合起來成為了容器服務標準化的兩個重要部分.同時用戶可以直接在Containerd和Runc 上建立包括MicrosoftAzure、VMWare 在內的多種上層應用,并不僅僅局限于Docker 容器平臺.其中的Runc 模塊是從Docker 的Libcontainer 中演化過來的,相當于Libcontainer 模塊結合上一個小型的客戶端用以實現容器的啟動停止和資源隔離等功能.作為應用程序級的虛擬化技術,如今的Docker 中通過Runc 模塊,即使繞過Daemon 守護進程依然能夠直接運行容器,某種程度上來說已經不依賴于Docker 本身了[10].

2 Docker 方案評測

龍芯平臺上的Fedora28 系統已經發布,故本次測試將在移植Docker 1.13+版本到28 系統上后,使用測試工具對Docker 方案進行測試,其中涉及的機器配置如表1.

2.1 Docker 移植

在進行具體的測評工作之前需要對相應的Docker方案進行MIPS 平臺的編譯工作.由于官方提供的安裝方法是在容器內自動安裝,過程需要從Docker 官方鏡像倉庫中拉取需要的Image 鏡像,涉及鏡像數量較多,且大量鏡像需要在MIPS 平臺上重新制作,故本次實驗選擇手動編譯的方式進行移植,根據龍芯平臺Fedora28 系統的差異性對Docker 源碼進行調整,添加MIPS 架構入口標識,優化不同架構平臺的參數設置.

Docker 方案編譯工作完成后,測試準備工作仍未完成,由于平臺架構的差異性,測試工作中涉及的所有鏡像需要重新設計.尤其是新版本Fedora28 系統的基礎鏡像,為預防可能出現的鏡像冗余問題,需要重新制作一個單獨的精簡系統,并保證新系統安裝源的維護.制作的Fedora28-base 鏡像已經推送到Docker 官方倉庫上,并同步更新下載源.

2.2 測試鏡像設計

為了對搭建好的Docker 平臺進行綜合性能評估,分析龍芯CPU 上的Docker 性能表現,在綜合考量大量性能測試工具后,基于實驗可重復性和簡潔性的考慮,選擇結合Unixbench 工具制作測試鏡像.因為Unixbench 工具是一款非常經典的系統基本性能測試工具,相對其他一些測試工具而言,它的測試項更為全面,而且能自動化執行一系列的測試命令,這更加契合測試鏡像的制作初衷,提高了測試效率.Unixbench 包括系統調用、IO 讀寫、進程、2D、3D、管道、運算、C 庫等在內的多種性能測試,測試結果不僅僅取決于CPU、內存、硬盤,還關乎硬件、開發庫和編譯器等,能較為全面地綜合評價系統各方面性能.而且Unixbench 能將測試后的數據計算成相應的分數以供用戶參考,使測試結果更加直觀簡潔.

重要的是,Unixbench 支持多CPU 系統的測試,默認的測試行為是兩次,第一次進行單進程測試(Running 1 Parallel Copy of Tests),第二次則是進行當前系統CPU 個數的測試(Running N Parallel Copy of Tests).這樣的測試是為了測試系統多任務下并行處理的性能,以更為客觀地表現出實際數據結果.主要測試項如下:

(1)Dhrystone 測試:該測試用于衡量和比較計算機CPU 的性能,主要側重于整數計算,沒有浮點計算,受到編譯器和鏈接器選項,軟硬件設計等影響較大.

(2)Whetstone 測試:這項主要用于測試浮點數的運算和效率,包含大量C 語言函數、浮點數的運算操作和若干科學計算的經典性能模塊等.

(3)Execl Throughput 測試:Execl 吞吐量測試,用于測試Execl 函數每秒調用次數,Execl 函數是Exec 函數家族的一部分,該函數族提供了在一個進程中啟動另外一個執行程序的方法.

(4)Pipe Throughput 測試:用于測試進程間的通信,即一秒鐘一個進程寫512 bite 到一個管道中并讀回來的次數.

(5)Pipe-based Context Switching 測試:基于管道的上下文交互測試,這是兩個進程通過管道進行通信的次數.

(6)Process Creation 測試:用于測試每秒創建進程并立刻收回的次數.

(7)Shell Scripts 測試:用于測試一定時間內進程可啟停Shell 腳本的次數.

(8)System Call Overhead 測試:用于測試系統調用的性能,即重復執行getpid()函數調用時進入和離開內核的時間.

2.3 不同容器數量的測試結果

測試分別在單核系統環境和四核系統環境下進行以便分析容器下虛擬化性能損耗.首先對龍芯單路主機進行Unixbench 測試作為基準值記為Container Number = 0,然后在不同數量的Docker 容器內同時運行測試鏡像進行性能測試.

這次實驗中,設容器編號(Container Number)為0 時在宿主機上運行測試,容器編號為N 時在同時運行的N 個容器中運行測試,對于每次測試重復執行3 次以降低誤差的影響,每一項測試結果取所有的數據結果的平均值為最終值,即每次最終的測試數據DataN計算如下:

式中,uij表示在N 個容器同時運行情況下,第j 個容器第i 次的測試數據.

實際測試數據表如表2.

由于Unixbench 工具出于測試系統單任務性能與多任務下并行處理性能的目的,測試行為中有兩項測試,即單進程測試(Running 1 Parallel Copy of Tests)和當前系統CPU 個數的多進程測試(Running N Parallel Copy of Tests,[CPU(N)]).單進程測試中所有的處理器只處理一個測試進程,而多進程測試中所有的處理器同時運行處理器數量個的測試進程.由于單核系統環境環境下無需進行并行處理的測試,故只有一個結果,這個測試結果既可以看作是單核系統下的單測試任務結果,也可以看作是多測試任務的結果.以下的數據分析中以多測試任務結果為主.

2.4 測試結果分析

Dhrystone 測試是測試處理器運算能力的基準程序之一,是各個測試項中最能反映CPU 能力的測試項,所以著重分析這一項測試的結果,來研究虛擬化在龍芯上的影響.

表2 不同容器數量下的性能測試結果

從表2 中,以測試處理器運算能力的基準程序Dhrystone 測試的結果可以看出,四核環境下的測試中,隨著同時運行測試程序的容器數量增加,機器的字符串處理性能幾近線性下降.如圖2.而在單核測試中,多容器下的性能以接近y=1/x 函數的形式呈曲線下降,如圖3,與基準值(單容器測試數據)相比,雙容器下Dhrystone 測試性能約為54.67%,三容器下Dhrystone測試性能約為44.16%,四容器下Dhrystone 測試性能約為33.04%.而其他的大部分測試項,無論在四核還是單核條件下都有相似的結果,性能并不是呈線性下降的,比如Execl 函數測試和管道吞吐量測試等,因為資源控制機制發揮了很大影響,它對CPU、內存、磁盤等計算資源的使用進行了調控.

而從表2 的第3 部分可以看到,在四核環境下的單進程測試(Running 1 Parallel Copy of Tests)中,Dhrystone 測試的結果并沒有變化,這是由于四核環境下的系統運算能力并未完全發揮出來,即使是在4 個容器內同時運行測試任務,也只是最大限度地體現了四核下的運算能力,Dhrystone 測試的單進程測試平均結果為473.0,稍高于單核測試中的雙容器測試結果14.7%,多進程測試平均結果為492.2,高于基準值16.6%.

而Whetstone 測試結果來看,數據結果十分穩定,即使在八容器的測試實驗中,Whetstone 測試在單進程測試中的平均結果也是200.2,多進程下結果是794.5,誤差幾乎可以忽略不計,再結合Dhrystone 測試的結果,可以確定容器虛擬化給CPU 的計算能力帶來損耗非常小.

圖2 Dhrystone 測試CPU(4)for 4 tests

圖3 Dhrystone 測試CPU(1)for 1 test

就龍芯單路主機上的測試結果和單容器測試的基準值比較,本文發現,在四核環境下,主機上的Dhrystone測試結果是基準值的96.17%,單核環境下是基準值的96.0%,而其他的一些測試項并未有這樣的結果,因此推測,這是由于容器內的鏡像系統是輕量化的精簡系統,在測試程序執行過程中CPU 對于其他可能存在的負載程序的支持更為輕松,所以測試結果顯示的相關計算能力會較為優越,這一結果也更加體現了Docker鏡像的制作對于實際應用中可能產生重要影響,一個優越的輕量化鏡像能更好地提升容器集群的性能和實際運行的流暢度.

3 龍芯平臺與X86 平臺下的測試比較

3.1 與銳龍5 處理器的對比測試

作為比較對象,X86 平臺下選擇的是搭載AMD 銳龍5 處理器的機器,硬件參數表如表3.

容器內的測試更不容易受到誤差因素干擾,可靠性和穩定性更強,因此在實際實驗中,分別在龍芯的單路服務器、雙路服務器和四路服務器上的測試容器內進行Unixbench 測試,并在搭載AMD Ryzen 5 2400 GB芯片的X86 機器上運行同樣的測試容器,由于Unixbench工具的測試特性分為兩項測試結果,相關測試結果如表4 和表5 所示.

表3 X86 平臺硬件參數表

表4 Unixbench 測試結果(Running 1 Parallel Copy of Tests)

表5 Unixbench 測試結果(Running N Parallel Copy of Tests [CPU(N)])

由于Ryzen 5(2400 GB)處理器上的CPU 主頻是動態的,因此為保證測試數據的客觀性和對比實驗的可行性,在BIOS 選項中設置了搭載Ryzen 5 處理器的主機主頻,然后通過不斷讀取/proc/cpuinfo 文件信息,確認主機的主頻均值在1.45 GHz 左右,與龍芯雙路服務器主頻相近.

龍芯雙路、四路服務器下CPU 主頻為1.45 GHz,單路主機為1.5 GHz,實際測試數據表如表4 和表5.

3.2 測試結果分析

在單進程測試下(Running 1 Parallel Copy of Tests),由于只有一個測試進程,所以無論處理器的核心數量是多少,都只有一個測試進程在執行,相當于在一個核心上進行性能測試,故首先可以從最能體現芯片性能的兩項測試Dhrystone 測試和Whetstone 測試開始分析,如圖4 所示.

首先從單個芯片的性能數據開始比較,主要以MIPS_CPU(8)和X86_CPU(8)下的結果進行比較.根據表4 和圖4,可以看到在Dhrystone 測試方面,雙路服務器中單核心龍芯性能分數為687.9,X86 下的測試分數為1795.6,龍芯在容器內進行Dhrystone 測試的執行效率大約是Ryzen 5 (2400 GB)的38.3%,而在與科學計算性能相關的Double-Precision Whetstone 測試中,龍芯的運算效率大約是Ryzen 5 (2400 GB)的37.4%左右,由兩個測試項數據結合確定了龍芯雙路服務器在運行單個測試進程時CPU 計算性能約為搭載Ryzen 5主機的40% 左右.但這僅僅是單個測試進程的結果,而基于Unixbench 測試工具的設計理念,多進程測試的結果更為貼近實際的應用場景表現出來的性能,因此需要著重分析多進程測試的數據結果.根據表5,可以得到多進程測試下的Dhrystone 測試和Whetstone測試數據結果,如圖5.

圖4 Dhrystone 測試和Whetstone 測試數據(1 parallel test)

圖5 Dhrystone 測試和Whetstone 測試數據(N parallel tests)

從圖5 中很清晰地看到,在龍芯雙路服務器中,Dhrystone 測試的整數計算性能約為搭載Ryzen 5 主機的63.6%,Whetstone 測試的浮點數計算性能約為44.8%,后續在進行驗證性測試時發現,數據結果基本穩定在測試數據的附近區間內,誤差大約在3%左右浮動,說明數據是可靠的.因此可以確定,處理器核心數量越多,基于Dhrystone 測試和Whetstone 測試得到的性能分數越高,機器整數運算性能和浮點數運算能力越強,而相等的處理器核心數量下,龍芯3A3000 芯片的相關計算性能約為Ryzen 5(2400 GB)芯片的40~60%.其中多進程測試下,與Ryzen 5 主機相比,龍芯雙路服務器的性能表現從38.3%提高到了63.6%,這是由于龍芯雙路服務器是八塊CPU 芯片,而Ryzen 5主機只是四塊CPU 八核心的處理器結構.其他項的測試可見圖6 和圖7.

圖6 Pipe 相關測試數據(N parallel tests)

圖7 進程相關測試數據(N parallel tests)

管道吞吐(Pipe Throughput)和交互測試(Pipebased Context Switching)兩項測試中,龍芯雙路服務器上的性能分數分別是2931.3 和980.9,大約為Ryzen 5(2400 GB)下的76.3%和70.1%.這兩項測試表明在相近主頻下,龍芯雙路服務器在進程通信效率上大約為Ryzen 5(2400 GB)主機的70%~76%.其他與系統性能相關測試的還有Process Creation 測試,用于測試每秒創建進程并回收的次數,龍芯雙路服務器性能約為Ryzen 5 (2400 GB)的30%左右;Shell Scripts 測試用于測試一定時間內進程可啟停Shell 腳本的次數,龍芯雙路服務器性能約為Ryzen 5 (2400 GB)的48%左右.因此綜合來看,同樣的Fedora28 系統的容器運行環境下,龍芯雙路服務器的系統綜合性能大約為Ryzen 5 (2400 GB)的50%左右.

3.3 Docker 方案綜合分析

首先,Docker 方案在移植到龍芯Fedora28 系統上之后,運行狀態良好,穩定性可靠性大幅提升,同時經過大量驗證性實驗之后可以肯定,容器內的性能分數稍高于主機環境約5%左右,在排除誤差帶來的影響之后,體現了容器本身的輕量級技術的特性,同時也印證了鏡像構建的重要性,可以預測一個優越的輕量化鏡像能更好地提升容器集群的性能和實際運行的流暢度,所以在后續構建和維護龍芯平臺的Docker 鏡像倉庫中同樣需要秉持認真負責的態度.

其次,本文發現多容器狀態的測試數據并不穩定,而且產生了一些性能損失,這是因為容器對于資源管理功能的實現仍然深深依賴與Linux 系統內核的自身特性,由于Docker 方案本身就是基于傳統LXC 技術實現的應用程序容器技術[10],旨在提供標準運行環境,實現底層操作系統與物理主機的解耦.因此,在容器數量增加到一定程度后,可以預見到容器間資源的不合理行為會變得十分頻繁從而影響整個的容器集群.從本次測試的多容器數量的性能趨勢中可窺一斑,所以在之后的實驗研究中,將把研究重點放到容器的動態調度算法和集群負載均衡策略優化上去,通過容器調度策略等設計優化容器的實際應用環境.

同時,根據借助容器環境在Ryzen 5 (2400 G)處理器上實現的對比實驗,本文發現,目前主流的龍芯芯片3A3000 與Ryzen 5 (2400 GB)芯片相比CPU 計算性能約在60%左右,這是龍芯雙路服務器與八核的Ryzen 5 (2400 GB)機器在進行多進程測試時比較得到的結果.如果就單進程測試而言,龍芯3A3000 的性能大約是Ryzen 5 (2400 GB)的一半,如果綜合考慮所有系統性能測試項,龍芯雙路服務器的綜合評分大約有搭載Ryzen 5 (2400 GB)主機的50%左右.

4 結束語

經過分析本文得到以下結論:一是龍芯平臺上的新版Docker 方案適應性良好,穩定性可靠性大大提高,并且發現輕量化的鏡像會略微提升容器內隔離進程的運行效率,這體現了容器本身的輕量級技術的特性,同時也印證了鏡像構建工作的重要性;二是通過性能數據的漸變趨勢,可以預測高容器數量級下整個集群系統性能會產生很大損失,僅僅依賴Linux 內核特性進行資源管理是遠遠不夠的,所以下一步研究將集中在容器集群模式下的負載均衡策略和動態調度算法設計上去;三是在容器中,經過與Ryzen 5 (2400 GB)芯片的對比實驗發現,根據Dhrystone 測試和Whetstone 測試結果,龍芯3A3000 芯片在CPU 計算性能方面大約是Ryzen 5 (2400 GB)芯片性能的40%~60%左右,多進程測試中Dhrystone 測試性能約為Ryzen 5 (2400 GB)的63.6%.綜合考慮所有系統性能測試項,龍芯雙路服務器的綜合性能評分大約為搭載Ryzen 5 (2400 GB)主機的50% 左右.但是微架構優化后的下一代龍芯3A4000 芯片即將推出,性能方面將會有更大的提升,國產化CPU 事業會發展的越來越好.

猜你喜歡
進程系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 久久黄色视频影| 伊人久热这里只有精品视频99| 色视频国产| 国产电话自拍伊人| 91福利国产成人精品导航| 无码高清专区| 亚洲九九视频| 亚洲欧洲综合| 一本大道香蕉久中文在线播放| 日韩欧美高清视频| 亚洲—日韩aV在线| 欧美日韩精品一区二区在线线 | 国产日产欧美精品| 欧美日韩一区二区在线播放 | 国产精品入口麻豆| 国产成人禁片在线观看| 国产精品伦视频观看免费| 九九九精品成人免费视频7| 国产AV毛片| www.99精品视频在线播放| 久久精品日日躁夜夜躁欧美| 精品91在线| 日韩一级二级三级| 日韩在线2020专区| 少妇人妻无码首页| 亚洲成A人V欧美综合天堂| 东京热高清无码精品| 伊人成色综合网| 真人免费一级毛片一区二区| 国产资源免费观看| 一级毛片免费不卡在线| 中文字幕人成乱码熟女免费| 国产91av在线| 欧美日韩一区二区三区四区在线观看| 无码在线激情片| 亚洲欧美日韩中文字幕在线| 114级毛片免费观看| 内射人妻无码色AV天堂| 亚洲色图在线观看| 91精品福利自产拍在线观看| 最新痴汉在线无码AV| 久久久久亚洲精品无码网站| 欧美日韩国产精品va| 中文字幕永久在线观看| 亚洲成人黄色在线| 成人国产一区二区三区| 国产无码网站在线观看| 亚洲成人黄色网址| 国产熟睡乱子伦视频网站| 国内a级毛片| 高清欧美性猛交XXXX黑人猛交| 国产精品亚洲片在线va| 亚洲欧美在线综合图区| 日韩免费毛片视频| 亚洲男人的天堂网| 久久国产av麻豆| 成人午夜亚洲影视在线观看| m男亚洲一区中文字幕| 一级一级一片免费| 亚洲无码视频一区二区三区| 国产正在播放| 国产成人精品日本亚洲77美色| 一级片免费网站| 国产成人永久免费视频| 一级片免费网站| 国产一区免费在线观看| 嫩草国产在线| 日本少妇又色又爽又高潮| 丰满少妇αⅴ无码区| 国产精品一区二区在线播放| 日韩A∨精品日韩精品无码| h网站在线播放| 免费中文字幕在在线不卡| 女人一级毛片| 女人av社区男人的天堂| 67194在线午夜亚洲| 国产精品手机在线播放| 国产精品视频第一专区| 97青草最新免费精品视频| 亚洲欧美成人综合| 亚洲成AV人手机在线观看网站| 久久婷婷色综合老司机|