乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Linux 下網絡丟包問題處理

       yi321yi 2020-05-05

      最近業(yè)務上老有問題,查看發(fā)現(xiàn)overruns值不斷增加,學習了一下相關的知識。

      發(fā)現(xiàn)數(shù)值也在不停的增加。G 了一下,發(fā)現(xiàn)這些 errors, dropped, overruns 表示的含義還不大一樣。

      eth2 Link encap:Ethernet HWaddr 00:8C:FA:F1:DA:78

      inet addr:10.249.2.112 Bcast:10.249.2.255 Mask:255.255.255.0

      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

      RX packets:26191508237 errors:0 dropped:0 overruns:45732243 frame:0

      TX packets:20141298524 errors:0 dropped:0 overruns:0 carrier:0

      collisions:0 txqueuelen:1000

      RX bytes:4684832167216 (4.2 TiB) TX bytes:4670328443919 (4.2 TiB)

      Memory:c7200000-c7280000

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

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

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

      RX frame: 表示 misaligned 的 frames。

      1、先查看硬件情況

      一臺機器經常收到丟包的報警,先看看最底層的有沒有問題:

      ethtool eth2 | egrep 'Speed|Duplex'

      Speed: 1000Mb/s

      Duplex: Full

      ethtool -S eth2 | grep crc

      rx_crc_errors: 0

      Speed, Duplex, CRC 之類的都沒問題,基本可以排除物理層面的干擾。

      2、通過 ifconfig 可以看到 overruns 字段在不停的增大

      for i in seq 1 100; do ifconfig eth2 | grep RX | grep overruns; sleep 1; done

      這里一直增加

      RX packets:26191785302 errors:0 dropped:0 overruns:45732243 frame:0

      3、查看buffer大小

      找了一些國外的文章,可以通過ethtool來修改網卡的buffer size ,首先要網卡支持,我的服務器是是INTEL 的1000M網卡,我們看看ethtool說明。

      -g –show-ringQueries the specified ethernet device for rx/tx ring parameter information.
      -G –set-ringChanges the rx/tx ring parameters of the specified ethernet device.

      查看當前網卡的buffer size情況ethtool -g eth0

      Ring parameters for eth0:

      Pre-set maximums:

      RX: 4096RX Mini: 0

      RX Jumbo: 0

      TX: 4096

      Current hardware settings:

      RX: 256

      RX Mini: 0

      RX Jumbo: 0

      TX: 256

      4、修改buffer size大小

      ethtool -G eth2 rx 2048

      ethtool -G eth2 tx 2048

      查看丟包

      [root@appserver1 network-scripts]# cat /proc/net/dev | column -t

      Inter-| Receive | Transmit

      face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

      lo:1697064305645 4937104295 0 0 0 0 0 0 1697064305645 4937104295 0 0 0 0 0 0

      eth0:72829268758 343814516 0 21338 0 0 0 9764241 74743576507 418943369 0 0 0 0 0 0

      eth1:5826509023 48719872 0 0 0 0 0 11358883 127451707 1107964 0 0 0 0 0 0

      eth2:4684766978372 26191366713 0 0 45732243 0 0 278436828 4670300836866 20141168183 0 0 0 0 0 0

      eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

      bond0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

      [root@appserver1 network-scripts]# netstat -i | column -t

      Kernel Interface table

      Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

      eth2 1500 0 26191244868 0 0 45732243 20141056331 0 0 0 BMRU

      lo 16436 0 4937053994 0 0 0 4937053994 0 0 0 LRU

      問題:接受隊列溢出產生錯誤,當?shù)诌_的包多于內核可以處理的包時,計算機會產生漫溢(overruns)。輸入隊列達到其上限(max_backlog)時,多抵達的那些包會全部被丟棄掉。


      @讀者 achlice 補充:

      補充一下, 對于overrun的包,修改了ring buffer之后,重啟主機后會失效,1,需要將配置添加到網卡配置文件例如 rhel系列是在/etc/sysconfig/network-scripts/ifcfg-* , 例如網卡是enp3, 在 ifcfg-enp3 配置文件添加 'ETHTOOL_OPTS='-G ${DEVICE} rx 4096; -A ${DEVICE} autoneg on' 2,如果網卡配置ETHTOOL_OPTS 參數(shù)不生效,請確保initscripts 這個軟件包是最新版本.

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多