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

容器部署MongoDB與物理機(jī)部署MongoDB的性能比較分析

2021-12-29 03:13:38吳佳驊
科教導(dǎo)刊·電子版 2021年32期
關(guān)鍵詞:計算機(jī)

吳佳驊

(武漢城市職業(yè)學(xué)院 湖北·武漢 430064)

現(xiàn)在的項目開發(fā)早已不是平地起樓式的了。虛擬機(jī)、運(yùn)行時、編譯器、中間件、開發(fā)框架、數(shù)據(jù)庫以及其他各種要配置的環(huán)境,在項目開發(fā)之前,以上這些都得先準(zhǔn)備好,否則大概率影響實(shí)際開發(fā)任務(wù)完成進(jìn)度。然而,這種由各種雜七雜八的東西形成的龐雜集合體,本身在部署時就很讓人費(fèi)神,稍有不慎,可能就會導(dǎo)致環(huán)境錯誤,在部署中發(fā)生人為錯誤的概率不低。當(dāng)項目中發(fā)生新應(yīng)用的加入時,也時常需要添加其他環(huán)境組件。這些原項目來說,有時就像是入侵的細(xì)菌,可能導(dǎo)致項目崩潰。于是,解決這些附加組件帶來的麻煩又成了不小的工作量。這些原本與開發(fā)任務(wù)本身關(guān)系不大的工作,需要在項目的各個階段上重復(fù)執(zhí)行,消耗大量的精力和耐性,對于要求速度的項目開發(fā),顯然很不劃算。

于是,容器技術(shù)開始被應(yīng)用在項目開發(fā)當(dāng)中。這是一種能夠把環(huán)境變量、應(yīng)用、數(shù)據(jù)庫等等打包在一個封閉的鏡像當(dāng)中的技術(shù),當(dāng)需要調(diào)用它們的時候,只需要根據(jù)鏡像去生成具體的執(zhí)行實(shí)例。不同的實(shí)例里可以包含不同的組件來提供服務(wù),而實(shí)例與實(shí)例之間是彼此獨(dú)立的。容器的出現(xiàn)使開發(fā)人員能用更靈活的方式去組織所需要的復(fù)雜環(huán)境。因為實(shí)例與實(shí)例之間彼此互不干涉,由不同組件代碼或者執(zhí)行庫沖突和不兼容等問題所引起的各種錯誤也就很難出現(xiàn)了。開發(fā)人員可以將全部的精力集中在項目本身的開發(fā)業(yè)務(wù)上,整體的開發(fā)效率提高了。

不過,把組件裝進(jìn)籠子里的容器技術(shù),是否真的是解決問題的銀色子彈?與傳統(tǒng)方式相比,在從雜亂環(huán)境部署的魔障里解救出開發(fā)人員的同時,作為代價是否又失去了什么,比如性能?為了解開這個疑問,用開發(fā)項目常用的NoSQL數(shù)據(jù)庫MongoDB做代表,測試比較物理機(jī)部署和容器部署的性能表現(xiàn)。

1 關(guān)于MongoDB

MongoDB使用C++語言編寫,是一種面向文件存儲的分布式NoSQL數(shù)據(jù)庫。MongoDB會把數(shù)據(jù)當(dāng)作文檔來存放,風(fēng)格和JSON很像,數(shù)據(jù)結(jié)構(gòu)是鍵值對,值又可以再包含別的文檔、列表或者文檔的列表。整體使用風(fēng)格都比較像關(guān)系數(shù)據(jù)庫,操作也比較簡單。

2 關(guān)于Docker

Docker在容器中最流行,它用Go語言編寫,并用appche2.0許可證開源,英文意思是碼頭工人搬運(yùn)的箱子。正如其名,Docker所提供的容器就像是一個一個的箱子,箱子里裝著各種各樣的東西,箱子與箱子直接又彼此獨(dú)立,每個箱子同時又呈現(xiàn)類似的可以相互堆疊的規(guī)格,很容易組合。Docker由四個部分組成:客戶端、守護(hù)進(jìn)程、鏡像和容器。Docker的運(yùn)作方式是C/S模式。守護(hù)進(jìn)程充當(dāng)后臺服務(wù)器,負(fù)責(zé)接受請求,并且處理它們。客戶端則提供人機(jī)交互界面,讓用戶可以和守護(hù)進(jìn)程進(jìn)行交互活動。客戶端和守護(hù)進(jìn)程可以被部署在同一臺主機(jī)上,開發(fā)用計算機(jī)大都如此;也可以分開來部署成遠(yuǎn)程模式,通過socket來完成通信。鏡像是Docker由需要的環(huán)境變量、運(yùn)行庫和其他組件一起通過打包生成的模板,容器是鏡像的實(shí)現(xiàn),一份鏡像可以實(shí)現(xiàn)無數(shù)相同的容器。

3 測試環(huán)境

為了測試結(jié)果更有參考價值,測試環(huán)境使用兩套完全一樣的硬件和操作系統(tǒng)。硬件:處理器intelcorei5-9400F,主頻2.9GHz;硬盤SSD;內(nèi)存16G DDR4。以上勝任一般開發(fā)用計算機(jī),SSD可降低I/O對測試結(jié)果的影響。操作系統(tǒng)ubuntu16.04LTS,Docker版本17.03.1,MongoDB版本5.0.2。計算機(jī)A直接安裝MongoDB,計算機(jī)B建立MongoDB的Docker鏡像然后生成Docker容器。

4 測試方法

為了貼近平時的開發(fā)情景,本次測試分為兩項:針對只讀性能的測試和針對讀寫混合操作性能的測試。只讀的性能測試設(shè)定為請求次數(shù)為25萬次,數(shù)據(jù)量100萬,表數(shù)30張,列數(shù)10列。讀寫混合操作的性能測試設(shè)定為請求次數(shù)25萬次,數(shù)據(jù)量100萬,表數(shù)1張,列數(shù)10列。

每種測試都設(shè)置4種并發(fā)線程:10線程、32線程、64線程、128線程。測試框架選擇使用業(yè)內(nèi)流行的sysbench-MongoDB。測試的數(shù)據(jù)全部在當(dāng)次測試之前隨機(jī)生成,避免數(shù)據(jù)庫緩存對測試結(jié)果造成的影響。測試結(jié)果以獲得的每秒鐘完成事務(wù)數(shù)量為準(zhǔn),即TPS。

5 測試結(jié)果分析

5.1 只讀性能測試結(jié)果分析

四輪只讀性能測試的TPS結(jié)果如圖1所示。

圖1:只讀性能TPS

從圖1中不難看出,直接物理機(jī)安裝MongoDB的計算機(jī)A與使用Docker部署MongoDB的計算機(jī)B在只讀性能上還是有些差異的。10線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是400和399,基本持平。32線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是410和360,計算機(jī)B比A性能大約低12%。64線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是395和385,計算機(jī)B比A性能大約低3%。128線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是405和396,計算機(jī)B比A性能上大約低3%。兩者的最大性能差發(fā)生在32線程測試中。

通過以上數(shù)據(jù)分析,可以認(rèn)為使用Docker部署MongoDB的計算機(jī)B在只讀性能上要稍遜于直接物理機(jī)安裝MongoDB的計算機(jī)A,最大性能差距在中線程體現(xiàn)得較為明顯,而在低線程和高線程并不會在性能上拉開較大的差距。

5.2 讀寫混合操作性能測試結(jié)果分析

四輪讀寫混合操作性能測試的TPS結(jié)果如圖2所示。

圖2:讀寫混合操作性能TPS

從圖2中可以看出,二者在讀寫混合操作性能上同樣存在差異。10線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是175和155,計算機(jī)B比A性能上大約低11%。32線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是200和167,計算機(jī)B比A性能上大約低16%。64線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是195和185,計算機(jī)B比A性能大約低5%。128線程測試中,計算機(jī)A和B的實(shí)測TPS數(shù)據(jù)分別是199和188,計算機(jī)B比A性能大約低1%。兩者的最大性能差依舊發(fā)生在32線程測試中。

通過以上數(shù)據(jù)分析,可以認(rèn)為使用Docker部署MongoDB的計算機(jī)B在讀寫混合操作性能上要明顯遜于直接物理機(jī)安裝MongoDB的計算機(jī)A,最大性能差發(fā)生在中線程,甚至高達(dá)15%以上,在低線程的性能差也在10%以上,在中高線程和高線程兩者勉強(qiáng)保持5%以內(nèi)的性能差距。

同時,對比圖1和圖2的結(jié)果,不難看出,兩者的性能差距在讀寫混合操作時明顯大于只讀時。

6 結(jié)論

通過在相同硬件條件下對只讀和讀寫混合操作這兩種性能共8輪測試的結(jié)果分析,不難看出將MongoDB部署在Docker中雖然并不能在性能上完全與傳統(tǒng)的物理機(jī)部署持平,但是損失的性能代價并不算太大,在低線程和高線程情況下這種性能差距是可以勉強(qiáng)接受,而在開發(fā)過程中最常涉及到中線程的情況下性能差距較大甚至超過10%。

所以,對于完全解決開發(fā)流程各個階段上復(fù)雜煩瑣的環(huán)境部署以保障整個流程里的環(huán)境一致這一問題,Docker并非銀色子彈。在性能和便利的天平上,還是得依靠開發(fā)團(tuán)隊去針對實(shí)際的需求做出增減砝碼的取舍。

猜你喜歡
計算機(jī)
計算機(jī)操作系統(tǒng)
穿裙子的“計算機(jī)”
基于LabVIEW的計算機(jī)聯(lián)鎖仿真系統(tǒng)
基于計算機(jī)自然語言處理的機(jī)器翻譯技術(shù)應(yīng)用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機(jī)多媒體技術(shù)應(yīng)用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統(tǒng)審計中計算機(jī)審計的應(yīng)用
計算機(jī)應(yīng)用軟件開發(fā)技術(shù)的幾點(diǎn)探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機(jī)網(wǎng)絡(luò)安全
iLOCK型計算機(jī)聯(lián)鎖開發(fā)中的需求開發(fā)管理
計算機(jī)聯(lián)鎖系統(tǒng)配置軟件設(shè)計與實(shí)現(xiàn)
主站蜘蛛池模板: 香蕉国产精品视频| 国产亚洲精品无码专| 伊人色婷婷| 99激情网| 日韩精品成人在线| 青青青视频免费一区二区| 自慰高潮喷白浆在线观看| 国产高清又黄又嫩的免费视频网站| 久久国产av麻豆| 国产激情在线视频| 日韩人妻精品一区| 欧美成人精品一区二区| 播五月综合| 国产午夜无码专区喷水| 久久伊伊香蕉综合精品| 色偷偷一区二区三区| 狼友av永久网站免费观看| 另类欧美日韩| 性欧美久久| 国产麻豆精品在线观看| 欧美色图第一页| 久久99热66这里只有精品一| 国产女人喷水视频| 国产视频只有无码精品| 亚洲天堂网在线播放| 国产在线视频二区| 国产精品99在线观看| 国产乱人激情H在线观看| 91麻豆精品国产91久久久久| 久久99热这里只有精品免费看| 欧美不卡视频在线| 精品精品国产高清A毛片| 日韩中文无码av超清| 91美女在线| 日韩国产高清无码| 日本一区二区三区精品视频| 日韩av手机在线| 国产91高跟丝袜| 国产福利免费在线观看| 亚洲男人天堂网址| 久久99国产精品成人欧美| 18禁黄无遮挡网站| 亚洲三级片在线看| 这里只有精品免费视频| 国产精品九九视频| 中文字幕色在线| 国产成人av一区二区三区| 国产免费看久久久| 国产成年无码AⅤ片在线| 又大又硬又爽免费视频| 极品国产在线| 国产手机在线观看| 国产精品女同一区三区五区| 91在线国内在线播放老师 | 亚洲国产高清精品线久久| 91久久国产热精品免费| 91无码人妻精品一区| 日韩国产综合精选| 71pao成人国产永久免费视频| 无码aaa视频| 欧美精品不卡| 88av在线看| 亚洲成AV人手机在线观看网站| 久夜色精品国产噜噜| 久久中文字幕不卡一二区| 中文字幕在线永久在线视频2020| 男女男免费视频网站国产| 人妻一区二区三区无码精品一区| 国产9191精品免费观看| 视频在线观看一区二区| 无码免费试看| 9啪在线视频| 欧美日韩va| 日本在线视频免费| 青青草原国产av福利网站| 亚洲永久精品ww47国产| 呦女亚洲一区精品| 青草娱乐极品免费视频| 最近最新中文字幕在线第一页 | 99视频精品在线观看| 亚洲精品男人天堂| 亚洲日韩精品无码专区97|