FreeBSD: Cách sửa lỗi ping ping: sendto: Không có dung lượng bộ đệm có sẵn?


27

Tôi đang cố gắng ping máy chủ từ xa, nhưng tôi gặp lỗi.

# ping 192.168.80.1
PING 192.168.80.1 (192.168.80.1): 56 data bytes
ping: sendto: No buffer space available
ping: sendto: No buffer space available
^C
--- 192.168.80.1 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

Nó hoạt động cho các máy chủ khác:

# ping 192.168.16.1
PING 192.168.16.1 (192.168.16.1): 56 data bytes
64 bytes from 192.168.16.1: icmp_seq=0 ttl=254 time=0.442 ms
64 bytes from 192.168.16.1: icmp_seq=1 ttl=254 time=0.402 ms
^C
--- 192.168.16.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.402/0.422/0.442/0.020 ms
#

Thông báo "Không có không gian bộ đệm khả dụng" dường như chỉ ra một số lỗi bộ nhớ. Và thực tế, khi tôi kiểm tra với Netstat, số "cụm mbuf" trông RẤT sai:

# netstat -m
11780 mbufs in use
4294966716/32768 mbuf clusters in use (current/max)
0/3/6656 sfbufs in use (current/peak/max)
1785 KBytes allocated to network
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

Chuyện gì đang xảy ra ở đây? Có cách nào để khắc phục điều này mà không có thời gian chết, hoặc tôi cần phải khởi động lại máy chủ hoặc khởi động lại giao diện mạng?


1
Bạn có thể gửi đầu ra dmesg của bạn?
Mike H

Tôi đã dán của riêng tôi. Trong trường hợp của tôi, đó là một bản sao lưu đang làm tắc nghẽn một số hàng đợi ở đâu đó, tôi không rõ tại sao - nhưng việc đình chỉ sau đó tiếp tục sao lưu (rsync --bwlimit = 40) đã khắc phục sự cố cho chúng tôi. Tôi cũng đã thử nhân đôi net.inet.tcp.sendbuf_maxnet.inet.tcp.recvbuf_max, không thay đổi gì cả.
Anarcat

Câu trả lời:


11

Vì sự cố dường như chỉ tách biệt với một giao diện - Tôi giả sử bạn đang sử dụng mặt nạ lớp C cũ đơn giản cho hai mạng này - tôi sẽ nhanh chóng trả lại nó:

# ifconfig en0 down
# ifconfig en0 up

Rõ ràng bạn cần thay thế tên giao diện chính xác ở đây cho en0.

Bạn có thể phải khởi động lại bất kỳ máy chủ nào nghe trên giao diện đó và mọi kết nối TCP được thiết lập bằng cách sử dụng nó sẽ bị hủy khi bạn thực hiện việc này. Mặc dù vậy, nó ngắn gọn, vì vậy tôi không thực sự xem một bài kiểm tra như là "thời gian chết".

Hãy chắc chắn không làm điều này trong khi ssh'd vào hộp trên giao diện bạn đang nảy. Tốt nhất bạn nên đăng nhập vào bảng điều khiển khi bạn làm điều này, nếu bạn có thể. Nếu máy chủ ở xa, kết nối modem là tốt nhất, vì việc bật các giao diện mạng sẽ không ảnh hưởng đến các máy chủ nối tiếp. Nếu bạn phải làm điều này trong khi đăng nhập qua mạng, hãy chắc chắn rằng kết nối của bạn đến từ một giao diện khác.


4
Chà, hóa ra giao diện này có cáp Ethernet lỏng lẻo. Tôi thắt chặt cáp và lỗi "Không có dung lượng bộ đệm khả dụng" đã biến mất. Bây giờ, tôi cần phải tìm hiểu xem tôi có cần lo lắng về số 'mbuf' không, hay nó sẽ tự xóa?
Stefan Lasiewski

Thật không may, việc bật giao diện không khắc phục được (có nhiều giao diện trên máy này, tôi đã thử từng cái một, và sau đó tất cả cùng một lúc, hy vọng rằng một cái gì đó sẽ giải phóng không gian). Tôi đã khởi động lại hộp và hy vọng sự cố này sẽ không xảy ra lần nữa sau khi chúng tôi sửa cáp.
Stefan Lasiewski

1
Một bản cập nhật 4 năm sau. Có, tôi cần phải lo lắng về lỗi mbuf. Vấn đề này thỉnh thoảng xuất hiện trên các hộp FreeBSD của tôi và hầu như luôn luôn liên quan đến tải mạng cao và có thể có cáp lỗi.
Stefan Lasiewski

Bouncing cố định nó cho tôi.
trọng lực

Tôi đến đây đặc biệt cho OpenBSD 5.8 AMD64 chạy trên Cloudstack chạy CentOS6.5 AMD64. Mỗi khi hộp vật lý bị gián đoạn, vm này không thể thoát ra được. Tôi đã cố gắng để trả lại giao diện và điều đó đã không làm việc. Chỉ cần nghĩ rằng tôi sẽ chia sẻ ở đây trong trường hợp người khác đi vào một con đường tương tự. CẬP NHẬT- chưa đầy một phút sau nó hoạt động, vì vậy có lẽ điều này không khắc phục được.
danno
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.