国产精品久久久久精品香蕉鲁大师大香蕉之中文在线日韩精品高清|粉嫩av一区二区三区免费观看欧美日韩精品蜜月线二区|最近2019中文字幕大全第二页99久久久精品免费观看国产麻豆|黑料51吃瓜不打烊爆料亚洲一区二区午夜福利亚洲|国产hongkong精品传媒久久久亚洲精品51|国产69精品久久久久9999人|日韩精品一区二区三区高清免费|91麻豆精品国产91久久久无限制版|久久精品中文字幕少妇|久久精品国产精品亚洲精品,中文字幕久久久久人妻中出,精品久久久国产黑料吃瓜网在线免费观看,91人妻精品久久久久中文字幕

解決方案

光潤(rùn)通網(wǎng)絡(luò)傳輸解決方案

技術(shù)解決方案 行業(yè)解決方案 定制化解決方案

客戶成功案例

查看光潤(rùn)通網(wǎng)絡(luò)解決方案在各行業(yè)的成功應(yīng)用,,了解客戶對(duì)光潤(rùn)通的評(píng)價(jià),。

了解更多信息>
服務(wù)與支持

服務(wù)宗旨

你的滿意是光潤(rùn)通畢生的追求,

您的煩惱也是困擾光潤(rùn)通的煩惱,

請(qǐng)將你的聲音傳達(dá)給我們,

讓我們?yōu)槟憬咝谋M力!

光纖網(wǎng)卡
關(guān)于光潤(rùn)通

我們的使命

加強(qiáng)產(chǎn)業(yè)核心技術(shù)和前沿技術(shù)研發(fā)并轉(zhuǎn)換成生產(chǎn)力,,讓中國(guó)自己的民族企業(yè)支撐和指引整個(gè)高端光產(chǎn)業(yè)的健康發(fā)展。

光纖網(wǎng)卡
官方商城
選擇語(yǔ)言
  • 中文簡(jiǎn)體 English
  • 首頁(yè) > 新聞資訊 > 技術(shù)解析
  • 服務(wù)器網(wǎng)卡丟包的原因

  • 發(fā)表時(shí)間:2020年04月17日
  • 有時(shí)會(huì)發(fā)生網(wǎng)絡(luò)丟包現(xiàn)象,,此處的丟包有兩種,,真正意義上的丟包和邏輯丟包(此處以tcp協(xié)議棧丟包為例)。之前falcon-agent也上報(bào)了相應(yīng)的指標(biāo),,在此處對(duì)一些疑問(wèn)給出盡量詳細(xì)的解釋,。


    linux系統(tǒng)pakcet接收的過(guò)程過(guò)程簡(jiǎn)單概括為


    1. 網(wǎng)卡收到包以后通過(guò)DMA傳至ring buffer 

    2. 網(wǎng)卡觸發(fā)硬件中斷,中斷處理函數(shù)調(diào)用包接受軟中斷(softirq) 

    3. Softirq檢測(cè)各cpu的網(wǎng)卡poll list,,并輪詢相應(yīng)網(wǎng)卡的ring buffer 

    4. 包從相應(yīng)packet desciptor 中移到更上一層處理,,并把該packet descriptor重置

    5. 真實(shí)的丟包就是說(shuō)這三個(gè)階段的任一階段收到了包,,但因?yàn)槟承┰虬阉鼇G棄了。


    發(fā)生真實(shí)丟包的原因

    當(dāng)ring buffer滿了并且kernel softirq并不能及時(shí)處理后續(xù)的進(jìn)來(lái)的包,,那就會(huì)導(dǎo)致丟包,。可以通過(guò)ethtool -G eth1 rx number增大receive buffer的值可以緩解丟包,,同理也可以設(shè)置transfer buffer,。

    當(dāng)socket backlog滿了導(dǎo)致丟包,可以設(shè)置/proc/sys/net/ipv4/tcp_max_syn_backlog來(lái)增加tcp syn隊(duì)列的長(zhǎng)度,。


    真實(shí)丟包判斷

    可以通過(guò)ethtool,、ifconfig、netstat命令查看丟包統(tǒng)計(jì),,也可以直接查看/proc/net/dev,、/sys/class/net/dev_name查看,如ifconfig eth0


    第三行,,第四行表示收包和發(fā)包的情況,,errors,dropped,,overruns,,frame不為0即表示發(fā)生了真正的丟包。


    RX errors: 表示總的收包的錯(cuò)誤數(shù)量,,這包括 too-long-frames 錯(cuò)誤,,Ring Buffer 溢出錯(cuò)誤,crc 校驗(yàn)錯(cuò)誤,,幀同步錯(cuò)誤,,fifo overruns 以及 missed pkg 等等。


    RX dropped: 表示數(shù)據(jù)包已經(jīng)進(jìn)入了 Ring Buffer,,但是由于內(nèi)存不夠等系統(tǒng)原因,,導(dǎo)致在拷貝到內(nèi)存的過(guò)程中被丟棄。


    RX overruns: 表示了 fifo 的 overruns,,這是由于 Ring Buffer(aka Driver Queue) 傳輸?shù)?IO 大于 kernel 能夠處理的 IO 導(dǎo)致的,,而 Ring Buffer 則是指在發(fā)起 IRQ 請(qǐng)求之前的那塊 buffer。很明顯,,overruns 的增大意味著數(shù)據(jù)包沒(méi)到 Ring Buffer 就被網(wǎng)卡物理層給丟棄了,,而 CPU 無(wú)法即使的處理中斷是造成 Ring Buffer 滿的原因之一,上面那臺(tái)有問(wèn)題的機(jī)器就是因?yàn)?interruprs 分布的不均勻(都?jí)涸?core0),,沒(méi)有做 affinity 而造成的丟包


    RX frame: 表示 misaligned 的 frames,。


    對(duì)于 TX 的來(lái)說(shuō),出現(xiàn)上述 counter 增大的原因主要包括 aborted transmission, errors due to carrirer, fifo error, heartbeat erros 以及 windown error,而 collisions 則表示由于 CSMA/CD 造成的傳輸中斷,。


    邏輯意義上的丟包

    相信大家多少都了解tcp協(xié)議棧,,tcp協(xié)議棧中有超時(shí)重傳算法,此處的邏輯丟包指的是接收方?jīng)]有在發(fā)出ack后收到正確序號(hào)范圍的packet


    邏輯意義上的丟包原因及判斷方法

    原因很可能是發(fā)生了網(wǎng)絡(luò)問(wèn)題,,具體包括如網(wǎng)絡(luò)擁塞,、網(wǎng)線松動(dòng)、網(wǎng)絡(luò)不穩(wěn)定及其他線路故障,,也有可能是網(wǎng)絡(luò)流量突增,,但是我們做監(jiān)控的不能去實(shí)時(shí)的拿著線路檢測(cè)儀去檢查線路,當(dāng)前擬定使用如下指標(biāo),,來(lái)源/proc/net/netstat:


    TcpExt.TCPLoss,,tcp協(xié)議棧丟失數(shù)據(jù)包而進(jìn)行恢復(fù)的次數(shù),此時(shí)falcon-agent所在主機(jī)為接收方

    TcpExt.TCPTimeouts tcp數(shù)據(jù)在指定時(shí)間內(nèi)沒(méi)有受到應(yīng)答ack而超時(shí)的次數(shù),,此時(shí)falcon-agent所在主機(jī)為發(fā)送方

    TcpExt.TCPLossFailures,,tcp協(xié)議棧丟失數(shù)據(jù)包進(jìn)行恢復(fù)失敗的次數(shù)

    TcpExt.TcpFastRetrans,tcp快速重傳的次數(shù)


    分享: