跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理服务位置协议服务 Oracle Solaris 11.1 Information Library (简体中文) |
如果 SLP 代理被多个子网、拨号线路或其他 WAN 分隔,则网络延迟可能太高,导致请求或注册无法在缺省超时时间内完成。相反,如果网络为低延迟,则可通过减小超时来改善性能。
如果网络通信流量很大或冲突率很高,则 SA 和 UA 在发送消息前需要等待的最长时间可能不足以确保事务无冲突。
高网络延迟可能导致 UA 和 SA 在请求和注册的响应返回之前超时。如果多个子网、拨号线路或 WAN 将 UA 与 SA 分隔,或者同时将 UA 和 SA 与 DA 分隔,则延迟可能会导致问题。通过检查 SLP 请求是否因 UA 和 SA 请求和注册的超时而失败,可以确定延迟是否是问题所在。也可使用 ping 命令来度量实际延迟。
下表列出了用于控制超时的配置属性。可以使用本节中的过程来修改这些属性。
表 3-4 超时属性
|
如果在多播服务搜索或 DA 搜索期间频繁出现超时现象,可增大 net.slp.multicastMaximumWait 属性的值,其缺省值为 15000 毫秒(15 秒)。增大最长等待时间可以留出更多时间,以便完成高延迟网络中的请求。在更改 net.slp.multicastMaximumWait 之后,还应该修改 net.slp.multicastTimeouts 和 net.slp.DADiscoveryTimeouts。这些属性的超时值之和等于 net.slp.multicastMaximumWait 值。
使用以下过程可以更改用于控制超时的 SLP 属性。
# svcadm disable network/slp
net.slp.multicastMaximumWait=value
32 位整数,它列出为 net.slp.multicastTimeouts 和 net.slp.DADiscoveryTimeouts 设置的值之和
缺省值 = 15000 毫秒(15 秒)
值范围 = 1000 至 60000 毫秒
例如,如果确定多播请求需要等待 20 秒(20000 毫秒),则需要调整为 net.slp.multicastTimeouts 和 net.slp.DADiscoveryTimeouts 属性列出的值,使两者之和等于 20000 毫秒。
net.slp.multicastMaximumWait=20000 net.slp.multicastTimeouts=2000,5000,6000,7000 net.slp.DADiscoveryTimeouts=3000,3000,6000,8000
net.slp.datagramTimeouts=value
32 位整数的列表,它以毫秒为单位指定将单播数据报传输实现到 DA 时的超时
缺省值 = 3000,3000,3000
例如,可将数据报超时增大到 20000 毫秒,以避免频繁超时。
net.slp.datagramTimeouts=2000,5000,6000,7000
在高性能网络中,可以减小多播和单播 UDP 数据报传输的超时界限。如果减小超时界限,则同时会减小满足 SLP 请求所需的延迟。
# svcadm enable network/slp
如果网络通信流量很大或冲突率很高,与 DA 的通信可能会受到影响。冲突率很高时,发送代理必须重新传送 UDP 数据报。通过使用 snoop 来监视作为 SA 服务器运行 slpd 的主机和作为 DA 运行 slpd 的主机网络中的流量,可以确定是否正在重新传输。在作为 SA 服务器运行 slpd 的主机的 snoop 跟踪中,如果出现同一服务的多个服务注册消息,则可能存在通知冲突。
在引导时,冲突特别容易引起问题。当 DA 最初启动时,它会发送未经请求的通告,并且 SA 以注册进行响应。SLP 要求 SA在接收 DA 通告后随机等待一段时间再进行响应。随机等待界限分布均匀,最大值由 net.slp.randomWaitBound 控制。缺省的随机等待界限为 1000 毫秒(1 秒)。
使用以下过程在 slp.conf 文件中更改 net.slp.RandomWaitBound 属性。
# svcadm disable network/slp
net.slp.RandomWaitBound=value
用于计算在尝试联系 DA 之前的随机等待时间的上界
缺省值 = 1000 毫秒(1 秒)
值范围 = 1000 至 3000 毫秒
例如,可将最长等待时间延长至 2000 毫秒(2 秒)。
net.slp.randomWaitBound=2000
延长随机等待界限时,注册中将出现更长的延迟。SA 可以用新搜索到的 DA 以更慢的速度完成注册,以避免冲突和超时。
net.slp.datgramTimeouts=value
32 位整数的列表,它以毫秒为单位指定将单播数据报传输实现到 DA 时的超时
缺省值 = 3000,3000,3000
例如,可将数据报超时增大到 20000 毫秒,以避免频繁超时。
net.slp.datagramTimeouts=2000,5000,6000,7000
在高性能网络中,可以减小多播和单播 UDP 数据报传输的超时界限。此设置可减小满足 SLP 请求时的延迟量。
# svcadm enable network/slp