|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
我下了个BFW的build tree,重新编译着来玩,给BUSYBOX加上了top命令。
在top下看,发现pppoe进程占用的CPU非常的高,当高峰时,BT下载上传都几百K接近1M时,它占用了30%的CPU。(机器cpu: CE333)
于是想到用kernel-mode-pppoe。
恰好BFW还带了pppox.o和pppoe.o
我又自己重新编译了rp-pppoe和pppd(用的新版本的,老版本没运行成功),得到rp-pppoe.so和pppd(这个pppd不晓得怎么搞的,很大,170K的样子)。
然后安装:
1.将pppox.o,pppoe.o,rp-pppoe.so加进/lib/modules
2.用新的pppd代替老的pppd
3.修改/etc/rc.d/rc.pppoe
echo "pty 'pppoe -I $IF_INET -m 1452'" >>/etc/ppp/options
改为:
# use kernel mode pppoe
insmod /lib/modules/pppox.o
insmod /lib/modules/pppoe.o
echo "plugin /lib/modules/rp-pppoe.so $IF_INET " >>/etc/ppp/options
#echo "pty 'pppoe -I $IF_INET -m 1452'" >>/etc/ppp/options
这样就使用rp-pppoe.so这个plugin而不是pppoe了。但是这里还有个问题,原先传给pppoe的-m 1452的这个参数,现在没有办法传给rp-pppoe.so,导致不能设置MSS,有些网站就访问不了了,我搞了好久才找到原因并找出解决方法,这就是下面的:
4.修改/etc/ppp/ip-up
将文件末尾的 exit 0 这行前加点东西,改成下面这样:
# patch!
# needed for using rp-pppoe.so
iptables -I FORWARD -o $1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
iptables -I FORWARD -o $IF_LOCAL -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
logger -p daemon.info -t ip-up "ip-up script do --set-mss 1452 on $1 and $IF_LOCAL"
exit 0
这样应该就没问题了。不过怎么保存就看自己的方法了,pppd在root.tgz里,这个包是不保存的。一般的方法是手动修改它了。
我的方法更方便
[ 本帖最后由 terminal2000 于 2005-10-29 16:02 编辑 ] |
|