字体:  

『原创』根据客户上线数量动态限速

9939781 发表于: 2008-11-17 17:07 来源: 软件路由论坛

建立标记,捕获所有内网IP,加入到地址表里10分钟
每10分钟执行一次脚本,脚本为判断地址表某标记数量,然后用数量判断使用哪种速度限制。
限速脚本里加入检测,若速度不变则不用重复执行,以免浪费资源。
本人已经在2.9.27上测试无问题。

[ 本帖最后由 9939781 于 2008-11-18 00:01 编辑 ]

根据客户上线数量动态限速.rar
(2008-11-17 17:07:52, Size: 580 B , Downloads: 231)

最新回复

index at 2008-11-17 17:48:12
没钱可以买.哈哈
木木 at 2008-11-17 18:00:42
根据用户数不是很准确吧,用户多不一定占用带宽多啊。
9939781 at 2008-11-17 18:04:18

QUOTE:

原帖由 木木 于 2008-11-17 18:00 发表
根据用户数不是很准确吧,用户多不一定占用带宽多啊。
这只是一种方式,而每个环境需求的方式不一样
zhjchina at 2008-11-17 18:21:06
支持一下
寄语风中 at 2008-11-17 18:52:59
想看看学习一下。可惜给钱时出错。。。。
LW2008 at 2008-11-17 21:45:16
建议朋友修改一下,改为依带宽判断!
9939781 at 2008-11-17 22:02:08

QUOTE:

原帖由 LW2008 于 2008-11-17 21:45 发表
建议朋友修改一下,改为依带宽判断!
你要的那种论坛有,你搜索下就知道了
wlfz at 2008-11-17 23:55:38
购买不了呀!!提示出错:

Directory './forumdata/templates/' not found or have no access!

楼主直接发布出来吧。
9939781 at 2008-11-18 00:00:59

QUOTE:

原帖由 wlfz 于 2008-11-17 23:55 发表
购买不了呀!!提示出错:

Directory './forumdata/templates/' not found or have no access!

楼主直接发布出来吧。
呵呵,既然这样,那我就发出来好了
jackzmeng at 2008-11-18 10:14:37
意义不大

不如用pcq做规则
黑兰州 at 2008-11-18 14:59:55
学习一下!
tsingchina at 2008-11-18 15:50:12
看了,感觉还行。
luzai at 2008-11-19 16:00:27
用不着,但是支持原创
szhe001 at 2008-11-20 10:51:02
脚本20
:set q [/queue simple get 4 limit-at]
:put $q
:set t 800000/1500000
:if ($q!=$t) do ={:for aaa from 4 to 253 do={/queue simple set ($aaa)limit-at=800000/1500000 max-limit=800000/1500000}}
---------------------------
我回去试了,上面的代码执行了但没生成4-253的限速列表,是怎么回事?
其它的代码都明白,就是 queue simple get 4 limit-at 这个不太明白是什么意思,楼主能讲一下吗?
9939781 at 2008-11-20 11:44:20

QUOTE:

原帖由 szhe001 于 2008-11-20 10:51 发表
脚本20
:set q [/queue simple get 4 limit-at]
:put $q
:set t 800000/1500000
:if ($q!=$t) do ={:for aaa from 4 to 253 do={/queue simple set ($aaa)limit-at=800000/1500000 max-limit=800000/1500000}}
...
这个是修改限速的,前提是你做了单IP限速,并且名字为4到254,缺一不可,否则脚本无法运行
szhe001 at 2008-11-20 12:03:45
有点明白了你看我下面理解的对不对:
get 4 limit-at 这里面的4就是“from 4 to 253 ”这个4吧?另外你说的单IP限速是不是一开始先用
:for aaa from 4 to 253 do={/queue simple set ($aaa)limit-at=800000/1500000 max-limit=800000/1500000 这样的角本生成单IP限速
再用你的代码就修改800000/1500000 这个值吗?
9939781 at 2008-11-20 18:04:48

QUOTE:

原帖由 szhe001 于 2008-11-20 12:03 发表
有点明白了你看我下面理解的对不对:
get 4 limit-at 这里面的4就是“from 4 to 253 ”这个4吧?另外你说的单IP限速是不是一开始先用
:for aaa from 4 to 253 do={/queue simple set ($aaa)limit-at=800000/150000 ...
是的,你完全理解正确,不过我里面没有包含生成单IP限速,只有修改限速,添加单IP限速的论坛有脚本,找找

[ 本帖最后由 9939781 于 2008-11-20 18:05 编辑 ]
wbyz20 at 2008-11-20 21:37:00
想法很好.但是用处不大.CPU会累死的.不如PCQ    宽带也不能合理利用...
9939781 at 2008-11-21 00:34:35

QUOTE:

原帖由 wbyz20 于 2008-11-20 21:37 发表
想法很好.但是用处不大.CPU会累死的.不如PCQ    宽带也不能合理利用...
脚本使用时CPU不会超过5%,除非上线人数不断20人以上加减变化
szhe001 at 2008-12-04 08:16:32
试用一星期后效果还是不错的,但有一个大问题我机器每次开机后有29M剩余内存它会慢慢变少,计划每10分钟运行一次的话大约3天后内存不到6M,如果每1分钟运行一次的话一天之内主机就会重启,可能是没内存可用了。是不是程序内的变量需要释放?各位有这现象吗?