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_dropped
tidak 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
linux
linux-networking
cuonglm
sumber
sumber
Jawaban:
Sebagian besar pengendara menukar penggunaan penghitung
rx_missed_errors
,,rx_fifo_errors
danrx_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:
Jadi
rx_missed_errors
untuk 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 eth2
dan kemudian mengaturnya denganethtool -G
.sumber