kuwin 发表于 2007-4-30 01:59:20

ROS用流量监控动态控制限速点(新方法)

######程序开始######################################################################
# 程序名称:ROS用流量监控动态控制限速点
# 程序版本:测试
# 程 序 员:kuwin Email:kuwin@163.com
# 程序版权:免费软件(本程序可自由传播及修改,不必理会原创作者kuwin)
#Ros版本:Ros2.8.27 Ros2.9.2 Ros2.9.7
# 编写日期:2007-04-29
# 修改日期:2007-04-30
# 测试人员:kuwin
# 测试结果:
#   1.控制效果良好;
#   2.程序消耗大量cpu资源,K62-300的cpu资源要用10-15,建议cpu要P3-500以上;
#   3.Ros显示的流量要比下载软件(讯雷等)上显示的流量要大,原因未明.
# 程序评级:无
# 简要说明:
#   1."预留带宽"是给网络游戏,浏览网页等一些不会抢带宽的程序突发使用,有趣的是,当这
#       些程序用了"预留带宽",本程序又会从讯雷,BT等带宽大鳄那里抢回一部分带宽作"预留
#       带宽",在恶劣的使用环境下(比如大家都在下载),最后的限制带宽就是"预留带宽".
#       建议"预留带宽"值取256000-512000,太小影响网络游戏,浏览网页速度,太大又会影响
#       下载速度;
#   2."最大带宽"取你的路由器出口带宽值.
#   3."步进带宽"是本程序自动设置限制带宽时的加减值,1兆路由器出口带宽设5000,2兆设
#       10000,10兆设50000,其它按此类推.
# 安装方法:
#   1.首先要做好简单的PCQ限速,分别起名"PCQ-Download"和"PCQ-Upload".(很多网站介绍,
#       上baidu搜pcq限速);
#   2.winbox,system-scripts,按+,起名SCRIPT_PCQ_SET,source里贴入这里全部内容;
#   3.winbox,system-scheduler,按+,起名"SCH_PCQ_SET",interval填00:00:01,on event填
#       SCRIPT_PCQ_SET;
#   4.程序内字母大小写敏感,请注意;
#   5.请特别注意PCQ名"PCQ-Download"和"PCQ-Upload".还有网卡的名"public"和"local"
####################################################################################

#定义变量
:local RxCurRate
:local RxCurSet
:local RxResRate
:local RxMaxRate
:local RxStepRate
:local TxCurRate
:local TxCurSet
:local TxResRate
:local TxMaxRate
:local TxStepRate

#下行即时流量
#interface monitor public once do={:set RxCurRate $received-bits-per-second}
interface monitor local once do={:set RxCurRate $sent-bits-per-second}
#下行当前设置
:set RxCurSet pcq-rate]
#下行预留带宽
:set RxResRate 256000
#下行最大带宽
:set RxMaxRate 1024000
#下行步进带宽
:set RxStepRate 5000

#上行即时流量
#interface monitor public once do={:set TxCurRate $sent-bits-per-second}
interface monitor local once do={:set TxCurRate $received-bits-per-second}
#上行当前设置
:set TxCurSet pcq-rate]
#上行预留带宽
:set TxResRate 64000
#上行最大带宽
:set TxMaxRate 512000
#上行步进带宽
:set TxStepRate 2500

#设置下行带宽
:if($RxCurRate<($RxMaxRate+-$RxResRate)) do={:if($RxCurSet<$RxMaxRate) do={:set RxCurSet ($RxCurSet+$RxStepRate)}} else={:if($RxCurSet>$RxResRate) do={:set RxCurSet ($RxCurSet+-$RxStepRate)}}
queue type set "PCQ-Download" kind=pcq pcq-rate=$RxCurSet pcq-classifier=dst-address

#设置上行带宽
:if($TxCurRate<($TxMaxRate+-$TxResRate)) do={:if($TxCurSet<$TxMaxRate) do={:set TxCurSet ($TxCurSet+$TxStepRate)}} else={:if($TxCurSet>$TxResRate) do={:set TxCurSet ($TxCurSet+-$TxStepRate)}}
queue type set "PCQ-Upload" kind=pcq pcq-rate=$TxCurSet pcq-classifier=src-address

######程序结束######################################################################

[ 本帖最后由 kuwin 于 2007-4-30 04:07 编辑 ]

专卖精品 发表于 2007-4-30 03:16:42

:victory:

qinlulu3 发表于 2007-4-30 03:26:24

MARK

qk2008 发表于 2007-4-30 06:23:20

完全看不明

wutb 发表于 2007-4-30 11:04:20

:victory: :lol
pcq限速做成这样,楼主不简单

护花凌 发表于 2007-4-30 11:17:37

interval填00:00:01
...
一秒一次么?增加负担:L

tpy372 发表于 2007-4-30 18:45:02

估计ros会傻掉:lol

kinglzy 发表于 2007-4-30 23:57:17

pppoe可以用吗???

chenluocai 发表于 2007-5-1 05:08:15

这个PCQ限速挺不错的!:lol

zhuww 发表于 2007-5-1 09:19:27

看谁用用行不行哦

kuwin 发表于 2007-5-1 14:44:01

程序有改动

经过实际应用,程序作了一些变动:
#定义变量(注意在Ros2.8中可以不要后面的0)
:local RxCurRate 0
:local RxCurSet 0
:local RxResRate 0
:local RxMaxRate 0
:local RxStepRate 0
:local TxCurRate 0
:local TxCurSet 0
:local TxResRate 0
:local TxMaxRate 0
:local TxStepRate 0

至于有网友提到"秒杀"会增加cpu负担,经过实践,K62-300的cpu只是增加了几个百分点,我想对P3-500以上的影响可以完全忽略.
至于有网友提到限速效果,我只能说我这里效果很好.

[ 本帖最后由 kuwin 于 2007-5-1 22:10 编辑 ]

tpy372 发表于 2007-5-1 16:45:00

至于有网友提到"秒杀"会增加cpu负担,经过实践,K62-300的cpu只是增加了几个百分点,我想对P3-500以上的影响可以完全忽略.
至于有网友提到限速效果,我只能说我这里效果很好.

实际带机环境???

LUYOKY 发表于 2007-5-3 03:16:23

:victory:
我这做黑吧的,2兆ADSL拖30台机.刚试了试.
少客的时候,下载电影什么的都很快,感觉不到有限速.
坐满人的时候,游戏一点不卡,网页打开正常(稍慢,但不会卡死),跟以前作单机限速差不多.

效果的确不错.Thk LZ!

qthzjh 发表于 2007-5-3 12:10:02

哪双线要怎么改,给个提示

louyc 发表于 2007-5-3 14:54:35

$RxCurSet+-$RxStepRate
这个又+又-什么意思?
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: ROS用流量监控动态控制限速点(新方法)