FreeBSD: "ping: sendto: 사용 가능한 버퍼 공간이 없음"을 수정하는 방법은 무엇입니까?

FreeBSD: "ping: sendto: 사용 가능한 버퍼 공간이 없음"을 수정하는 방법은 무엇입니까?

원격 호스트에 ping을 시도했지만 오류가 발생했습니다.

# 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

다른 호스트에서도 작동합니다.

# 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
#

"사용 가능한 버퍼 공간이 없습니다." 메시지는 일종의 메모리 오류를 나타내는 것 같습니다. 실제로 Netstat를 확인했을 때 "mbuf 클러스터" 번호가 매우 잘못된 것으로 나타났습니다.

# 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

어떻게 되어가나요? 가동 중지 시간 없이 이 문제를 해결할 수 있는 방법이 있습니까? 아니면 호스트를 재부팅하거나 네트워크 인터페이스를 다시 시작해야 합니까?

답변1

문제가 하나의 인터페이스에만 관련된 것 같지 않으므로 두 네트워크 모두에 대해 기존의 일반 클래스 C 마스크를 사용하고 있다고 가정합니다. 신속하게 해결하겠습니다.

# ifconfig en0 down
# ifconfig en0 up

분명히 여기에서 올바른 인터페이스 이름을 바꿔야 합니다 en0.

이 인터페이스를 수신하는 모든 서버를 다시 시작해야 할 수도 있으며, 이렇게 하면 이 인터페이스를 사용하여 설정된 모든 TCP 연결이 삭제됩니다. 하지만 짧기 때문에 이러한 유형의 테스트를 "다운타임"이라고 생각하지 않습니다.

바운스하려는 인터페이스의 상자에 SSH로 접속하는 동안에는 이 작업을 수행하지 마십시오. 가능하다면 이 작업을 수행할 때 콘솔에 로그인하는 것이 가장 좋습니다. 서버가 원격인 경우 네트워크 인터페이스 바운싱이 직렬 getty에 영향을 미치지 않으므로 모뎀 연결을 사용하는 것이 좋습니다. 네트워크를 통해 로그인하는 동안 이 작업을 수행해야 하는 경우 다른 인터페이스를 통해 연결이 이루어지고 있는지 확인하세요.

관련 정보