新聞中心
最近開發(fā)了一基于springcloud的微服務(wù)架構(gòu)的門戶項(xiàng)目,因?yàn)榭蛻魧?duì)系統(tǒng)性能有要求,所以作者對(duì)系統(tǒng)的一些api接口進(jìn)行了大量壓力測(cè)試。在壓測(cè)過程中,發(fā)現(xiàn)接口的性能瓶頸之一是服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫部署在虛機(jī)上,所以本文將分享內(nèi)容分為兩部分:

10年的榮成網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整榮成建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“榮成網(wǎng)站設(shè)計(jì)”,“榮成網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
- 性能壓測(cè)結(jié)果說明
- 為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛機(jī)
性能壓測(cè)結(jié)果說明
性能壓測(cè)思路是從軟硬件負(fù)載 f5,nginx,到容器化平臺(tái)k8s、docker、zuul網(wǎng)關(guān),再到數(shù)據(jù)存儲(chǔ)es、mysql、mongodb、redis,進(jìn)行全面測(cè)試。
性能壓測(cè)匯總
部分接口壓測(cè)結(jié)果
其中值得關(guān)注的是,用一臺(tái)zuul網(wǎng)關(guān)節(jié)點(diǎn)和一個(gè)業(yè)務(wù)節(jié)點(diǎn)壓測(cè)空接口,發(fā)現(xiàn)一個(gè)有意思現(xiàn)象:
空接口壓測(cè)不走zuul,一個(gè)業(yè)務(wù)節(jié)點(diǎn)tps能達(dá)到32000,走zuul網(wǎng)關(guān),一個(gè)業(yè)務(wù)節(jié)點(diǎn)空接口tps只有11000,性能損耗64%。
當(dāng)時(shí)就感覺zuul網(wǎng)關(guān)在我心中高大的形象碎了一地,但是沒辦法,性能不達(dá)標(biāo)必須要優(yōu)化。所以樓主查了很多資料,也問過一些docker和k8s的容器化平臺(tái)大牛,總結(jié)出兩點(diǎn)經(jīng)驗(yàn):
- docker和k8s部署到虛機(jī)上,zuul網(wǎng)關(guān)性能衰減40%左右
- 數(shù)據(jù)存儲(chǔ)es、mysql、mongodb、redis不能用虛機(jī)部署
所以我向公司申請(qǐng)物理機(jī),繼續(xù)性能壓測(cè),當(dāng)然這不是重點(diǎn),重點(diǎn)是接下來要講的:為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛擬機(jī)上。
為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛擬機(jī)
虛擬機(jī)的特點(diǎn)
- 運(yùn)行在物理機(jī)上
- 有自己的虛擬網(wǎng)絡(luò)
- 多臺(tái)虛擬機(jī)共享物理機(jī)資源
io開銷
我們知道,不管虛機(jī)上部署了多少個(gè)應(yīng)用,一旦涉及到數(shù)據(jù)的存儲(chǔ),如果采用虛機(jī)部署數(shù)據(jù)庫,會(huì)帶來不必要的網(wǎng)絡(luò)io開銷。因?yàn)樘摂M機(jī)在調(diào)度大量物理的cpu和內(nèi)存、特別是磁盤IO時(shí),必須經(jīng)過虛擬機(jī)和物理機(jī)兩層網(wǎng)絡(luò)io讀寫開銷操作,是非常耗系統(tǒng)性能的。
一般情況下,使用虛擬機(jī)部署應(yīng)用,其性能衰減約20%左右,這不是優(yōu)化代碼能解決的。
共享物理機(jī)資源
因?yàn)樘摂M機(jī)在cpu資源、網(wǎng)絡(luò)等方面共享物理機(jī)資源,虛擬機(jī)之間會(huì)存在競(jìng)爭(zhēng)物理機(jī)資源,造成程序不穩(wěn)定情況。
docker容器部署
更要命的是,如果數(shù)據(jù)庫和zuul網(wǎng)關(guān)部署到容器(實(shí)質(zhì)也是虛擬機(jī))里,那么網(wǎng)絡(luò)io讀寫變成docker(虛擬機(jī))到虛機(jī),再到物理機(jī)三層訪問,無形之中又增加了io讀寫性能開銷。尤其是對(duì)于請(qǐng)求吞吐量要求很高的服務(wù)網(wǎng)關(guān)zuul,是不能容忍的。
總結(jié)
所以虛機(jī)對(duì)于IO密集型以及對(duì)延遲要求很高的業(yè)務(wù)場(chǎng)景不合適。
另外,早期的時(shí)候,作為一名架構(gòu)師需要盡早的規(guī)劃好服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫的物理部署方式以及軟硬件性能要求。
分享文章:為什么在微服務(wù)架構(gòu)下,服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署在虛擬機(jī)上
網(wǎng)站地址:http://fisionsoft.com.cn/article/dhhdsds.html


咨詢
建站咨詢
