Làm cách nào để khắc phục sự cố rx_missed_errors?


8

Di chuyển từ máy chủ cũ sang máy chủ mới, sau khi thiết lập tất cả các dịch vụ, tôi nhận thấy một gói rx bị rớt lớn trong NIC của mình:

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

Nhưng /sys/class/net/eth2/statistics/rx_droppedkhông hiển thị gì:

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

Sau đó, tôi thấy rằng rx_missed_errors:

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

Làm thế nào tôi có thể khắc phục sự cố và tìm hiểu nguyên nhân rx_missed_errors?


Tôi đang chạy Ubuntu 12.04.5 LTS, với:

$ 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

Điều gì tạo nên / mô hình NIC là nó?
Geraint Jones

@GeraintJones: Tôi đã cập nhật câu hỏi.
cuonglm

Bạn đã theo dõi điều này? sourceforge.net/p/e1000/bugs/383/#fb68
Geraint Jones

@GeraintJones: Cảm ơn liên kết, tôi đã đọc nó nhưng có vẻ như vấn đề không được hiển thị?
cuonglm

Liên kết miễn phí tại đây: Khả năng không khớp cấu hình cho các NIC của bạn giữa hai máy chủ (và do đó giữa máy chủ mới và cơ sở hạ tầng mạng của bạn)? Có sự khác biệt nào khi chạy ethtool so với NIC trên máy chủ cũ hơn (nếu đó là một tùy chọn) không? Ngoài ra, có sự khác biệt nào khi cắm vào một cổng khác trên NIC trong máy chủ hoặc cổng khác trên công tắc được kết nối không? Để so sánh giữa hai NIC, sử dụng ethtool -k eth2 (thay vì -i).
Mary

Câu trả lời:


8

Hầu hết các trình điều khiển trao đổi việc họ sử dụng các quầy rx_missed_errors, rx_fifo_errorsrx_over_errors, nhưng họ thường đặt một hoặc nhiều các quầy để MPC (nhỡ đếm gói) truy cập, được tăng lên khi một gói tin đến và bị mất vì FIFO hàng đợi của thẻ là đầy đủ.

Đây là trường hợp cho trình điều khiển 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;

Vì vậy, rx_missed_errorsđối với ixgbe là MPC.

Có một bài đăng blog tuyệt vời trên trang web của Intel mô tả nguyên nhân giảm MPC bằng cách sử dụng một sự tương tự tuyệt vời: https://cransities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kove -sink-và-thống kê-giải thích và điều trị-bỏ-gói

Ngoài ra, đảm bảo không có sự trùng khớp giữa tốc độ và song công giữa NIC và công tắc. Nếu công tắc của bạn nghĩ rằng NIC của bạn nhanh hơn thực tế, thì bạn sẽ gặp vấn đề về phía NIC.

Cuối cùng, tối đa hóa kích thước bộ đệm vòng của NIC của bạn có thể giúp ích nếu nguyên nhân gốc rễ kết thúc là hiệu suất khi đối mặt với các vụ nổ. Bạn có thể tìm giá trị tối đa với ethtool -g eth2và sau đó đặt nó với ethtool -G.


Liên kết đã hết, nhưng Google vẫn có nó trong bộ nhớ cache: webcache.googleusercontent.com/ Khăn
Theuni

Và nếu bộ nhớ cache của Google không làm việc, đó là trên máy Wayback: web.archive.org/web/20141220043139/https://...
claymation
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.