hi,

I have a FreeBSD 8.2 server with some em & igb interfaces. (em driver version 
is 7.3.2 & igb driver version is 2.3.1)
It doesn't have a full-load traffic on it (maximum 50-100Mbps per-interface on 
1Gbps interface). but occasionally one of its interfaces stopped responding 
(mostly "em") and when I log in to server and ping the other side from it, i 
got "no buffer space available" error. and I have to do a "ifconfig em0 down; 
ifconfig em0 up" to solve the problem.
related buffer sizes seem more than enough for existing low traffic on server:
kern.ipc.nmbclusters=1000000
kern.ipc.maxsockbuf=4000000
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.sendspace=1000000
net.inet.tcp.recvspace=1000000
net.inet.udp.recvspace=1000000

hw.igb.rxd=1024
hw.igb.txd=1024
hw.em.rxd=1024
hw.em.txd=1024

problem is, most of the time I'm not at the server when it happens and I can't 
update it's kernel for now (although I don't even know if it helps). So I 
wanted to write a simple shell  that gets executed in background and everytime 
this problem happened on an interface, it automatically "down/up"s it to make 
it work.

so my question is:
1- how can I discover if an interface's buffer is filled out, and "no buffer 
space available" situation is happened on that interface?
2- I know "down/up"ing interface is not an ideal work to do, but it's the only 
solution I can think of. any other suggestions?


thank you.
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to