引子
隨著產(chǎn)品交互需求越來(lái)越頻繁,數(shù)據(jù)量也越來(lái)越大,高并發(fā)成為了一種常態(tài),給網(wǎng)絡(luò)帶來(lái)了極大的挑戰(zhàn)。特別是,大量頻繁用戶(hù)請(qǐng)求和數(shù)據(jù)交互、體積小的網(wǎng)絡(luò)包通信的新業(yè)務(wù)場(chǎng)景下,單個(gè)云主機(jī)網(wǎng)絡(luò)包處理能力已經(jīng)無(wú)法滿(mǎn)足需求。
為解決單個(gè)云主機(jī)網(wǎng)絡(luò)包處理能力存在的瓶頸,UCloud云主機(jī)發(fā)布了網(wǎng)絡(luò)增強(qiáng)新特性,可以支撐數(shù)倍在線請(qǐng)求,將單臺(tái)PPS提高數(shù)倍,從而保證網(wǎng)絡(luò)性能的穩(wěn)定。
舉個(gè)例子:就游戲而言,輕微的網(wǎng)絡(luò)波動(dòng)就會(huì)造成在線玩家掉線和卡頓,單臺(tái)云主機(jī)平均更是有幾萬(wàn)的包轉(zhuǎn)發(fā),單臺(tái)云主機(jī)的網(wǎng)絡(luò)包處理能力明顯不足。但是,打開(kāi)網(wǎng)絡(luò)增強(qiáng)特性后,對(duì)于游戲商來(lái)說(shuō)就能一個(gè)區(qū)服承載數(shù)倍游戲玩家,而對(duì)于不注重單機(jī)能力的情況也能起到一臺(tái)頂多臺(tái)的作用,所以網(wǎng)絡(luò)增強(qiáng)特性不僅可以提高單臺(tái)主機(jī)的包處理能力,還能減少云主機(jī)的部署數(shù)量與相應(yīng)的成本。
初識(shí)網(wǎng)絡(luò)增強(qiáng)
那么,UCloud云主機(jī)網(wǎng)絡(luò)增強(qiáng)特性具體能為高包量并發(fā)的數(shù)據(jù)處理帶來(lái)哪些優(yōu)化呢? 在介紹UCloud云主機(jī)的網(wǎng)絡(luò)增強(qiáng)新特性,先介紹數(shù)據(jù)包和并發(fā)的概念,了解一條消息的旅程:
- 包(Packet),是TCP/IP協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱(chēng)“數(shù)據(jù)包”。在網(wǎng)絡(luò)中,數(shù)據(jù)被劃分為多個(gè)數(shù)據(jù)包,這些包沿著不同的路徑在一個(gè)或多個(gè)網(wǎng)絡(luò)中傳輸,在傳輸?shù)穆吠旧?,每個(gè)小數(shù)據(jù)包還可能會(huì)被繼續(xù)分片。當(dāng)這些小數(shù)據(jù)包到達(dá)目標(biāo)機(jī)器時(shí),他們會(huì)被重新拼裝到一起。
簡(jiǎn)單的說(shuō),用戶(hù)瀏覽網(wǎng)頁(yè)、打開(kāi)App、玩聯(lián)網(wǎng)手機(jī)游戲,實(shí)際上就是數(shù)據(jù)包的交換,因?yàn)檫@些簡(jiǎn)單動(dòng)作背后,你完成了給網(wǎng)站發(fā)送數(shù)據(jù)包,而網(wǎng)站接收到了之后,根據(jù)你發(fā)送的數(shù)據(jù)包的IP地址,返回給你網(wǎng)頁(yè)的數(shù)據(jù)包這兩個(gè)過(guò)程,即數(shù)據(jù)包的交換。
- 并發(fā),在操作系統(tǒng)中,是指一個(gè)時(shí)間段中有幾個(gè)程序都處于已啟動(dòng)運(yùn)行到運(yùn)行完畢之間,且這幾個(gè)程序都是在同一個(gè)處理機(jī)上運(yùn)行,但任一個(gè)時(shí)刻點(diǎn)上只有一個(gè)程序在處理機(jī)上運(yùn)行,即兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。
簡(jiǎn)單的說(shuō),當(dāng)春運(yùn)期間,12306網(wǎng)站開(kāi)放購(gòu)票,1秒內(nèi)10000個(gè)人點(diǎn)擊購(gòu)買(mǎi)按鈕,此時(shí)12306網(wǎng)站服務(wù)器就收到了10000個(gè)并發(fā)請(qǐng)求。
UCloud云主機(jī)的網(wǎng)絡(luò)增強(qiáng)新特性,優(yōu)化的就是數(shù)據(jù)包并發(fā)處理的能力,打開(kāi)網(wǎng)絡(luò)增強(qiáng)配置,創(chuàng)建的新主機(jī)可以擁有網(wǎng)絡(luò)高包量多隊(duì)列并發(fā)特性,使帶寬能力大幅提升,能并行處理和接受批量連接的報(bào)文,極大提升了虛擬機(jī)的包處理能力。
技術(shù)實(shí)現(xiàn)云主機(jī)的網(wǎng)絡(luò)增強(qiáng)特性,利用的是網(wǎng)卡多隊(duì)列特性,讓多核CPU配合多隊(duì)列網(wǎng)卡驅(qū)動(dòng)的支持,將各個(gè)隊(duì)列通過(guò)中斷綁定到不同的核上,使得CPU的各個(gè)核實(shí)現(xiàn)并發(fā)收包,所以在網(wǎng)絡(luò)流量大的時(shí)候,數(shù)據(jù)包可以被分散到各個(gè)核上,避免了CPU成為瓶頸的尷尬。
那多隊(duì)列網(wǎng)卡特性又是如何實(shí)現(xiàn)的呢?事實(shí)上,以往的內(nèi)核是不支持多隊(duì)列的,而不支持多隊(duì)列的內(nèi)核中的每個(gè)網(wǎng)卡都擁有一個(gè)排隊(duì)的規(guī)則,根據(jù)排隊(duì)規(guī)則的過(guò)濾器將數(shù)據(jù)包區(qū)分為一個(gè)個(gè)類(lèi),類(lèi)中還可以嵌套新的更細(xì)的排隊(duì)規(guī)則,但這種以網(wǎng)卡為中心的方式實(shí)際上不適應(yīng)如今的網(wǎng)絡(luò)應(yīng)用,從而誕生了多隊(duì)列特性的網(wǎng)卡。
實(shí)現(xiàn)了多隊(duì)列的網(wǎng)卡圖示如下:
數(shù)據(jù)被劃分為數(shù)據(jù)包在網(wǎng)絡(luò)傳輸,到達(dá)目標(biāo)機(jī)器時(shí),先通過(guò)網(wǎng)卡轉(zhuǎn)發(fā)給內(nèi)核,內(nèi)核包括驅(qū)動(dòng)和內(nèi)存,最終到達(dá)CPU,CPU對(duì)數(shù)據(jù)包進(jìn)行處理。對(duì)于普通的云主機(jī)來(lái)說(shuō),網(wǎng)卡只有一個(gè)根隊(duì)列,所有的數(shù)據(jù)包進(jìn)來(lái)都要進(jìn)入這個(gè)根隊(duì)列進(jìn)行排隊(duì),由一個(gè)CPU進(jìn)行處理。所以當(dāng)數(shù)據(jù)量大的時(shí)候,就會(huì)造成瓶頸,以致CPU來(lái)不及處理數(shù)據(jù)包,最終導(dǎo)致丟包。
而多隊(duì)列網(wǎng)卡是一種技術(shù),將各個(gè)隊(duì)列通過(guò)中斷綁定到不同的核上,實(shí)現(xiàn)了多隊(duì)列,就不再逼迫數(shù)據(jù)包強(qiáng)擠到網(wǎng)卡的根隊(duì)列進(jìn)行排隊(duì),使得每個(gè)網(wǎng)卡擁有很多的根隊(duì)列,甚至每個(gè)應(yīng)用一個(gè)隊(duì)列都有可能,從而增強(qiáng)并發(fā)處理能力,使帶寬能力大幅提升,能并行處理和接受批量連接的報(bào)文,極大提升了虛擬機(jī)的包處理能力。
實(shí)現(xiàn)上,我們主要是通過(guò)負(fù)載均衡方法論,升級(jí)宿主機(jī)和虛擬機(jī)操作系統(tǒng)Linux 的內(nèi)核,實(shí)現(xiàn)對(duì)網(wǎng)卡驅(qū)動(dòng)多隊(duì)列的支持,并利用多核CPU的性能,讓原來(lái)的一個(gè)隊(duì)列變成四個(gè)隊(duì)列,使得數(shù)據(jù)包的調(diào)度變得更加有效,同時(shí)也由多個(gè)CPU進(jìn)行處理,從而提升并發(fā)處理的能力。
(注:目前只支持在部分Linux發(fā)行版4核CPU以上的標(biāo)準(zhǔn)機(jī)型上開(kāi)啟。)
性能測(cè)試
對(duì)于UCloud云主機(jī)網(wǎng)絡(luò)增強(qiáng)的性能,我們也進(jìn)行了測(cè)試。主要是通過(guò)使用通用網(wǎng)絡(luò)性能測(cè)試工具netperf對(duì)UHost標(biāo)準(zhǔn)版機(jī)型在是否開(kāi)啟網(wǎng)絡(luò)增加配置的兩種情況下進(jìn)行網(wǎng)絡(luò)性能測(cè)試得到的結(jié)果,最新的測(cè)試數(shù)據(jù)如下圖所示(鑒于是測(cè)試環(huán)境,該數(shù)據(jù)僅供參考):
圖解:
1. ucloud-yg: 未開(kāi)啟網(wǎng)絡(luò)增強(qiáng)的云主機(jī)
2. ucloud-gre: 開(kāi)啟網(wǎng)絡(luò)增強(qiáng)的云主機(jī)
3. 未標(biāo)注的數(shù)據(jù)為業(yè)內(nèi)其他云主機(jī)
經(jīng)過(guò)測(cè)試,網(wǎng)絡(luò)增強(qiáng)配置的特性,會(huì)讓帶寬利用率更是大幅提升,內(nèi)網(wǎng)帶寬接近4Gb/s,是業(yè)內(nèi)平均水平的7倍以上。
經(jīng)過(guò)測(cè)試,網(wǎng)絡(luò)增強(qiáng)配置的特性,可以極大的提升包處理能力,是業(yè)內(nèi)平均水平的3倍以上,最大包吞吐能力高達(dá)18萬(wàn)。
總結(jié)
本文簡(jiǎn)單的介紹了利用多隊(duì)列網(wǎng)卡特性使得云主機(jī)擁有網(wǎng)絡(luò)高包量多隊(duì)列并發(fā)特性的實(shí)現(xiàn)過(guò)程。希望通過(guò)分析數(shù)據(jù)包傳輸路徑以及處理過(guò)程讓大家直觀的看到,UCloud云主機(jī)網(wǎng)絡(luò)增強(qiáng)新特性帶來(lái)的高包量并發(fā)處理能力的提升。
未來(lái),UCloud還會(huì)對(duì)網(wǎng)絡(luò)增強(qiáng)配置進(jìn)行升級(jí),隨著硬件提升和可能的內(nèi)核優(yōu)化,高包量處理能力還將有持續(xù)提升空間。希望此特性能夠滿(mǎn)足新場(chǎng)景下通訊頻繁、數(shù)據(jù)包體積小但數(shù)量大的新需求。
- 9200萬(wàn)崗位將消失!世界經(jīng)濟(jì)論壇報(bào)告揭示未來(lái)10年就業(yè)大變局
- AI重構(gòu)人的價(jià)值:當(dāng)機(jī)器卷走中低端產(chǎn)能,優(yōu)秀程序員更稀缺
- 玩脫了!"馬部長(zhǎng)"上任滿(mǎn)月,特斯拉市值暴跌三成
- 蘋(píng)果宣布史上最大支出計(jì)劃:將在美投資5000億美元,增加2萬(wàn)個(gè)就業(yè)崗位
- 微軟搞出全新新物態(tài)!量子計(jì)算機(jī)要起飛了?
- 中企深度出?!氨匦拚n”:信心博弈與責(zé)任鍛造
- “開(kāi)年第一問(wèn):信心與責(zé)任出?!眹?guó)際化研討會(huì)成功舉辦
- 華為2024年銷(xiāo)售收入超8600億元,多業(yè)務(wù)板塊齊頭并進(jìn)
- 國(guó)內(nèi)首個(gè)省級(jí)旅游AI智能體“AI游貴州”發(fā)布,馬蜂窩助力貴州開(kāi)啟智慧文旅新篇章
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。