好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Linux多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)詳解

Linux多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)詳解

熱門標(biāo)簽:山東企業(yè)電銷機(jī)器人價(jià)格 公司400電話辦理價(jià)格 依蘭縣地圖標(biāo)注app 百度地圖標(biāo)注開鎖電話 安陽百應(yīng)電銷機(jī)器人加盟 pageadm實(shí)現(xiàn)地圖標(biāo)注 百度中國地圖標(biāo)注中心 琿春市地圖標(biāo)注app 潮州地圖標(biāo)注

多隊(duì)列網(wǎng)卡是一種技術(shù),最初是用來解決網(wǎng)絡(luò)IO QoS (quality of service)問題的,后來隨著網(wǎng)絡(luò)IO的帶寬的不斷提升,單核CPU不能完全處滿足網(wǎng)卡的需求,通過多隊(duì)列網(wǎng)卡驅(qū)動的支持,將各個(gè)隊(duì)列通過中斷綁定到不同的核上,以滿足網(wǎng)卡的需求。

常見的有Intel的82575、82576,Boardcom的57711等,下面以公司的服務(wù)器使用較多的Intel 82575網(wǎng)卡為例,分析一下多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)以及l(fā)inux內(nèi)核軟件的支持。

1.多隊(duì)列網(wǎng)卡硬件實(shí)現(xiàn)

圖1.1是Intel 82575硬件邏輯圖,有四個(gè)硬件隊(duì)列。當(dāng)收到報(bào)文時(shí),通過hash包頭的SIP、Sport、DIP、Dport四元組,將一條流總是收到相同的隊(duì)列。同時(shí)觸發(fā)與該隊(duì)列綁定的中斷。

圖1.1 82575硬件邏輯圖

2. 2.6.21以前網(wǎng)卡驅(qū)動實(shí)現(xiàn)

kernel從2.6.21之前不支持多隊(duì)列特性,一個(gè)網(wǎng)卡只能申請一個(gè)中斷號,因此同一個(gè)時(shí)刻只有一個(gè)核在處理網(wǎng)卡收到的包。如圖2.1,協(xié)議棧通過NAPI輪詢收取各個(gè)硬件queue中的報(bào)文到圖2.2的net_device數(shù)據(jù)結(jié)構(gòu)中,通過QDisc隊(duì)列將報(bào)文發(fā)送到網(wǎng)卡。

圖2.1 2.6.21之前內(nèi)核協(xié)議棧

圖2.2 2.6.21之前net_device

3. 2.6.21后網(wǎng)卡驅(qū)動實(shí)現(xiàn)

2.6.21開始支持多隊(duì)列特性,當(dāng)網(wǎng)卡驅(qū)動加載時(shí),通過獲取的網(wǎng)卡型號,得到網(wǎng)卡的硬件queue的數(shù)量,并結(jié)合CPU核的數(shù)量,最終通過Sum=Min(網(wǎng)卡queue,CPU core)得出所要激活的網(wǎng)卡queue數(shù)量(Sum),并申請Sum個(gè)中斷號,分配給激活的各個(gè)queue。

如圖3.1,當(dāng)某個(gè)queue收到報(bào)文時(shí),觸發(fā)相應(yīng)的中斷,收到中斷的核,將該任務(wù)加入到協(xié)議棧負(fù)責(zé)收包的該核的NET_RX_SOFTIRQ隊(duì)列中(NET_RX_SOFTIRQ在每個(gè)核上都有一個(gè)實(shí)例),在NET_RX_SOFTIRQ中,調(diào)用NAPI的收包接口,將報(bào)文收到CPU中如圖3.2的有多個(gè)netdev_queue的net_device數(shù)據(jù)結(jié)構(gòu)中。

這樣,CPU的各個(gè)核可以并發(fā)的收包,就不會應(yīng)為一個(gè)核不能滿足需求,導(dǎo)致網(wǎng)絡(luò)IO性能下降。

圖3.1 2.6.21之后內(nèi)核協(xié)議棧

圖3.2 2.6.21之后net_device

4.中斷綁定

當(dāng)CPU可以平行收包時(shí),就會出現(xiàn)不同的核收取了同一個(gè)queue的報(bào)文,這就會產(chǎn)生報(bào)文亂序的問題,解決方法是將一個(gè)queue的中斷綁定到唯一的一個(gè)核上去,從而避免了亂序問題。同時(shí)如果網(wǎng)絡(luò)流量大的時(shí)候,可以將軟中斷均勻的分散到各個(gè)核上,避免CPU成為瓶頸。

圖4.1 /proc/interrupts

5.中斷親合糾正

一些多隊(duì)列網(wǎng)卡驅(qū)動實(shí)現(xiàn)的不是太好,在初始化后會出現(xiàn)圖4.1中同一個(gè)隊(duì)列的tx、rx中斷綁定到不同核上的問題,這樣數(shù)據(jù)在core0與core1之間流動,導(dǎo)致核間數(shù)據(jù)交互加大,cache命中率降低,降低了效率。

圖5.1 不合理中斷綁定

linux network子系統(tǒng)的負(fù)責(zé)人David Miller提供了一個(gè)腳本,首先檢索/proc/interrupts文件中的信息,按照圖4.1中eth0-rx-0($VEC)中的VEC得出中斷MASK,并將MASK

寫入中斷號53對應(yīng)的smp_affinity中。由于eth-rx-0與eth-tx-0的VEC相同,實(shí)現(xiàn)同一個(gè)queue的tx與rx中斷綁定到一個(gè)核上,如圖4.3所示。

                                                                                     

圖4.2 set_irq_affinity

圖4.3 合理的中斷綁定

set_irq_affinity腳本位于http://mirror.oa.com/tlinux/tools/set_irq_affinity.sh。

上一頁12 下一頁 閱讀全文

標(biāo)簽:香港 公主嶺 晉中 呼和浩特 常德 連云港 三明 林芝

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)詳解》,本文關(guān)鍵詞  Linux,多,隊(duì)列,網(wǎng)卡,的,硬件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux多隊(duì)列網(wǎng)卡的硬件的實(shí)現(xiàn)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 同桌上课脱我内裤揉我胸| 精品国产乱码久久久久久88AV| 一级真人免费视频毛片| 一色屋精品免费视频视频| 黑洞加速器下载安卓| 舔vk| 精品免费囯产一区二区三区四区| 日产av一区二区三区| 陪读乱肉系列合集小说| 亚洲婷婷综合中文字幕第一页| 被闺蜜用震蛋折磨调教gl| 免费萌白酱国产一区二区| 国产精品久久久久久无码AV片| 国产精品 一区二区三区| 韩国毛片免费看高清| 最好看的中文字幕完整版| 精品国产伦一区二区三区在唱戏| 花季传媒网站免费进入在线观看| 成人福利在线观看| 流氓软件下载免费安装| 91国精产品一二二线精华液| 女性做爰小视频| 体育男生吃武警大雕| zozozo女人与牛交zozozo视频| 禁漫?天堂?H漫画网站| 久久久久久蜜桃一区二区| 车子太颠簸你坐小杰身上| 18岁以下禁止观看app| 引人注目的拼音| 久草免费在线播放| oldwomen欧美老妇人| 91久久精品国产91久无码网站| 在线免费观**网站| 国产精品伦子一区二区三区| 美妇与子伦亲小说| 嗯~啊~乖~进去了~h~乖视频| 成人午夜精品电影无码| 老老董大战戴若希全部| 狠狠操天天射| 老湿影院在线观看| 在线97视频|