跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理服务位置协议服务 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍可以通过更改以下属性来调优 SLP 性能的可能情况。
表 3-3 SLP 性能属性
|
SA 在生命周期到期之前,需要定期刷新其服务通告。如果 DA 需要处理来自许多 UA 和 SA 的大量负载,则频繁刷新会导致 DA 过载。如果 DA 过载,UA 请求将开始超时,然后将被删除。UA 请求超时可能有多种原因。在您断定 DA 过载是导致 UA 请求超时的原因之前,应先使用 snoop 跟踪来检查已进行服务注册的服务通告的生命周期。如果生命周期很短并且重新注册频繁发生,则超时很可能是由频繁重新注册引起的。
使用以下过程可以增大 SA 的最短刷新间隔,以减少重新注册。
# svcadm disable network/slp
缺省的最短重新注册周期是零。缺省值零允许 SA 在任意时刻注册。在以下示例中,该间隔增大到 3600 秒(1 小时)。
net.slp.DAAttributes(min-refresh-interval=3600)
# svcadm enable network/slp
多播生存时间属性 (net.slp.multicastTTL) 决定了多播包在内联网中的传播范围。多播 TTL 是通过将 net.slp.multicastTTL 属性设置为 1 与 255 之间的整数来配置的。多播 TTL 的缺省值为 255,这意味着从理论上讲,包路由不受限制。但是,TTL 为 255 时会使多播包穿透内联网,到达管理域边缘的边界路由器。需要在边界路由器上正确配置多播,才能防止多播包泄漏到 Internet 的多播主干中,或泄露给您的 ISP。
多播 TTL 作用域设置与标准 IP TTL 相似,区别在于要进行 TTL 比较。对于启用了多播的路由器上的每个接口,都会为其指定一个 TTL 值。当多播包到达时,路由器会将该包的 TTL 与接口的 TTL 进行比较。如果包的 TTL 大于或等于接口的 TTL,包 TTL 将减小 1,这与标准 IP TTL 相同。如果 TTL 变为零,将放弃该包。将 TTL 作用域设置用于 SLP 多播时,必须对路由器进行正确配置,以将包限制到内联网的特定子段。
使用以下过程可以重置 net.slp.multicastTTL 属性。
# svcadm disable network/slp
net.slp.multicastTTL=value
小于或等于 255 的正整数,用于定义多播 TTL
# svcadm enable network/slp
SLP 的缺省包大小为 1400 字节。对于大多数局域网而言,该大小应该足够。对于无线网络或广域网而言,可以减小包大小,以避免消息分段并减少网络通信流量。对于具有较大包的局域网而言,增大包大小可以改善性能。通过检查网络的最小包大小可以确定是否需要减小包大小。如果网络介质具有较小的包大小,则可相应减小 net.slp.MTU 的值。
如果网络介质具有较大的包,则可增大包大小。但是,除非来自 SA 的服务通告或来自 UA 的查询频繁使缺省包大小溢出,否则不应更改 net.slp.MTU 值。可以使用 snoop 来确定 UA 请求是否经常使缺省包大小溢出,并滚动使用 TCP 而非 UDP。
net.slp.MTU 属性会度量完整的 IP 包大小,包括链路层头、IP 数据包头、UDP 或 TCP 数据包头以及 SLP 消息。
使用以下过程通过调节 net.slp.MTU 属性来更改缺省包大小。
# svcadm disable network/slp
net.slp.MTU=value
一个 16 位整数,用于指定网络包大小(以字节为单位)
缺省值 = 1400
值范围 = 128–8192
# svcadm enable network/slp
设计 SLP 的目的是使用多播来进行服务搜索(不存在 DA 时)和 DA 搜索。如果网络不部署多播路由,则可通过将 net.slp.isBroadcastOnly 属性设置为 True 来将 SLP 配置为使用广播。
与多播不同,广播包缺省情况下不在子网中传播。因此,在非多播网络中没有 DA 的服务搜索只适用于单个子网。此外,在使用广播的网络中部署 DA 和范围时,需要考虑特殊的注意事项。多宿主主机上的 DA 可在禁用多播的多个子网之间桥接服务搜索。有关在多宿主主机上部署 DA 的更多信息,请参见DA 放置和范围名称指定。