我想要实现的目标
我想将特定后台文件复制服务的可用带宽限制为几 (< 100) kBytes/s(最好是不对称的)。
我首先尝试使用 Crossbow 来实现这一点。但是 Crossbow 只允许以 150 kBytes/s 的步长限制带宽限制,不幸的是我无法使用它。然后我尝试使用 IPQoS。
IPQoS 问题 - 摘要
但是 IPQoS 似乎在 Solaris Express 11 上出现故障。
我尝试了很多例子(来自手册 ipqosconf(1M),来自在线文档和来自不同的博客) 都会导致以下错误:
Error: Missing required parameter for action <name>.
Error: Configuration failed, system state unchanged.
详细配置
在这个 qos 配置中,我想将 e1000g0 的上行/下行带宽限制为 100 kBytes/s。
fmt_version 1.0
action {
# generic IP classifier
module ipgpc
name ipgpc.classify
# disable later due to perfomance impact
params {
global_stats TRUE
}
class {
name hlimit
next_action cap
enable_stats FALSE
}
filter {
name hlimit
if_name e1000g0
class hlimit
}
}
action {
module tokenmt
name cap
params {
committed_rate 102400
committed_burst 102400
peak_rate 102400
peak_burst 102400
red_action_name drop
green_action_name continue
yellow_action_name continue
global_stats TRUE
}
}
但是当我尝试应用配置时,我得到:
$ sudo ipqosconf -a ipqos.qos
Error: Missing required parameter for action cap.
Error: Configuration failed, system state unchanged.
我的 ipqos 服务正在运行:
$ svcs -l ipqos
fmri svc:/network/ipqos:default
name IPQoS configuration
enabled true
state online
next_state none
state_time May 11, 2011 05:33:29 PM CEST
logfile /var/svc/log/network-ipqos:default.log
restarter svc:/system/svc/restarter:default
dependency optional_all/none svc:/network/initial (online)
dependency require_all/none svc:/system/filesystem/usr (online)
日志文件:
$ cat /var/svc/log/network-ipqos\:default.log
<snip>
[ May 11 16:50:40 Disabled. ]
[ May 11 17:33:29 Enabled. ]
[ May 11 17:33:29 Executing start method ("/lib/svc/method/net-ipqos"). ]
[ May 11 17:33:29 Method "start" exited with status 0. ]
并且cat /var/adm/messages
没有显示有关 ipqos 的任何信息。
结论
看来我被困在这儿了。
对于 Solaris 中的小带宽,您如何进行流量整形?
我还可以查看其他内容来了解有关此错误的更多信息吗?也许你们中有人知道如何找到最新的 IPQoS 文档。
如果 IPQoS 是开源的,我愿意深入研究源代码以找到此错误的根源。但到目前为止,我仍无法通过搜索查询找到它(无论是在线还是在包管理器中)。
您是否考虑过任何标准资源,以便我能够找到有关 Solaris 中的服务(尤其是 IPQoS)的更多信息?
答案1
尝试安装ipqos-conf
。应该可以解决您的问题。
pkg install ipqos-conf