Bagaimana cara mengatasi masalah rx_missed_errors?

8

Bermigrasi dari server lama ke yang baru, setelah mengatur semua layanan, saya melihat paket rx yang dijatuhkan di NIC saya:

$ ifconfig eth2 | grep 'RX.*drop'
          RX packets:2059646370 errors:0 dropped:7142467 overruns:0 frame:0

Tetapi /sys/class/net/eth2/statistics/rx_droppedtidak menunjukkan apa pun:

$ cat /sys/class/net/eth2/statistics/rx_dropped
0

Lalu, saya melihat bahwa rx_missed_errors:

$ cat /sys/class/net/eth2/statistics/rx_missed_errors
7142467

Bagaimana saya bisa memecahkan masalah dan mencari tahu apa penyebabnya rx_missed_errors?


Saya menjalankan Ubuntu 12.04.5 LTS, dengan:

$ ethtool -i eth2
driver: ixgbe
version: 3.15.1-k
firmware-version: 0x800003e1
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
cuonglm
sumber
Apa yang membuat / model NIC itu?
Geraint Jones
@GeraintJones: Saya memperbarui pertanyaan.
cuonglm
Sudahkah Anda mengikuti ini? sourceforge.net/p/e1000/bugs/383/#fb68
Geraint Jones
@GeraintJones: Terima kasih atas tautannya, saya telah membacanya tetapi sepertinya masalahnya tidak ditampilkan?
cuonglm
Gratis bergaul di sini: Kemungkinan ketidaksesuaian konfigurasi untuk NIC Anda antara dua server (dan karenanya antara server baru dan infrastruktur jaringan Anda)? Adakah perbedaan menjalankan ethtool terhadap NIC pada server lama (jika itu merupakan pilihan)? Juga, ada perbedaan mencolokkan port yang berbeda pada NIC di server, atau port yang berbeda pada switch yang terhubung? Untuk perbandingan antara kedua NIC, gunakan ethtool -k eth2 (bukan -i).
Mary

Jawaban:

8

Sebagian besar pengendara menukar penggunaan penghitung rx_missed_errors,, rx_fifo_errorsdan rx_over_errors, tetapi mereka biasanya mengatur satu atau lebih penghitung ini ke penghitung MPC (jumlah paket tidak terjawab), yang bertambah ketika suatu paket tiba dan hilang karena antrian FIFO kartu penuh.

Ini adalah kasus untuk driver ixgbe:

$ grep rx_missed_errors drivers/net/ixgbe/*
drivers/net/ixgbe/ixgbe_ethtool.c:      {"rx_missed_errors", IXGBE_STAT(net_stats.rx_missed_errors)},
drivers/net/ixgbe/ixgbe_main.c: adapter->net_stats.rx_missed_errors = total_mpc;

Jadi rx_missed_errorsuntuk ixgbe adalah MPC.

Ada posting blog yang bagus di situs web Intel yang menjelaskan penyebab tetes MPC menggunakan analogi yang hebat: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen -sink-dan-statistik-jelaskan-dan-perlakukan-jatuhkan-paket

Pastikan juga tidak ada kecocokan kecocokan antara duplikat dan NIC antara saklar dan kecepatan. Jika saklar Anda menganggap NIC Anda lebih cepat dari yang sebenarnya, maka Anda akan mengalami masalah di sisi NIC.

Akhirnya, memaksimalkan ukuran buffer cincin NIC Anda mungkin membantu jika akar penyebab akhirnya menjadi kinerja dalam menghadapi semburan. Anda dapat menemukan nilai maks dengan ethtool -g eth2dan kemudian mengaturnya dengan ethtool -G.

Christopher Neylan
sumber
Tautannya
Theuni
Dan jika cache Google tidak berfungsi, itu ada di mesin wayback
claymation