上学期05年1月17日发生了代理服务器mbuf clusters exhausted ,当时只是以为服务器被攻击了,但昨晚(05-04-11)服务器又出现相同的故障,显示All mbuf clusters exhausted , Please see tuning(7) 。局域网上网时断时续,我用SSH登陆到服务器(也时断时续),然后netstat -m 果然
8887/80000/80000 mbufs in use (current/peak/max):
791 mbufs allocated to data
96 mbufs allocated to packet headers
8782/10000/10000 mbuf clusters in use (current/peak/max)
25508 Kbytes allocated to network (25% of mb_map in use)
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
然后我用netstat -a命令,发现有一个地址192.168.31.97一直出现,占到了整个输出的大半,我想可能问题是出在那台机器上,可能是中毒了。马上检查,发现是中毒了。
今天早上,我在freebsdchina也搜到了delphij的一个关于mbuf的老贴子,也看了昨天我在freebsdchina发的求救贴的回贴,发现了一个问题:导致这种情况不一定是外网的攻击,有可能是你内网的机器中毒发大量数据包的病毒。就像我这台192.168.31.97一样。
可以先这样解决:
1、用netstat -a查看将有异常(在Foreign Address一项中IP的出现次数多的)的机器立即隔断与局域网的连接。
2、把maxuser设置成256
3、编辑/boot/defaults/loader.conf ,编辑kern.ipc.nmbclusters="65536"
4、重启server
看了前辈们的贴子和自己的经历暂时只想到这样解决,如有更好的方法,我想听听老大们是怎么解决的?