对 SIP 应用程序进行故障诊断
您可以使用此主题对 SIP 应用程序进行故障诊断。
关于此任务
对 SIP 应用程序的问题进行故障诊断时,请使用以下 SIP 容器故障诊断基准。
- 系统的 CPU 平均使用率不应高于 60%-70%。
- 容器所使用的资源不应超过已分配 VM 堆大小的 70%。确保系统有足够的物理内存来容纳 VM 堆大小。调用负载和会话超时对堆使用率有很大的影响。
- 运行容器的 VM 的最长垃圾回收 (GC) 时间不应超过 500 ms,并且平均时间应少于 400 ms。详细 GC 可用于测量此项,而 PMI 查看器可用于以图形形式显示 GC 时间、堆使用率、活动会话等。
过程
- 检查配置中的侦听端口
- 使用 netstat –an 来查看侦听端口。
- 检查是否定义了虚拟主机。
- 检查是否定义了主机别名。
- 是否安装了应用程序?是否已启动
- 对于代理配置:是否配置了缺省集群?如果机器上有代理和服务器,那么是否存在端口冲突?
结果
- 症状:大量重复传输,CPU 使用率偶尔降至零或在日志中看到 ThreadPoolQueueIsFullException 异常
解决方案:这是典型的 DNS 问题,由逆向 DNS 查询造成,并且可使用 Ethereal 这样的工具确认。如果执行网络捕获,发送大量包含 IP 地址的 DNS 查询并在响应中获取主机名,那么可能会导致问题。如果在 HP 或需要名称服务高速缓存的其他平台上,请确保 nscd 正在运行。Microsoft Windows 平台不需要名称服务高速缓存。另一种解决方案是将主机名添加至 /etc/hosts 文件。
- 症状:大量重复传输,CPU 使用率偶尔升至 100%。
解决方案:典型原因是垃圾回收,并且可通过打开详细 GC(可在管理控制台上访问)并查看 GC 循环的长度来验证。此处的解决方案是通过将 JVM 可选自变量设置为 -Xgcpolicy:gencon 来启用“分代垃圾回收”。
- 症状:大量重复传输,CPU 使用率长时间升至 100% 并且已启用“分代垃圾回收”。解决方案:典型原因是 SIP 会话对象长时间未失效或未超时。一个解决方案是将应用程序的 sip.xml 中的会话超时值设置为更小的值。处理此问题最有效的方式是让应用程序在对话完成时(即接收到 BYE 信息后)使会话失效。SystemOut.log 文件中的以下条目将指示会话超时值用于容器上安装的每个应用程序:
SipXMLParser 3 SipXMLParser getAppSessionTTL Setting Expiration time: 7 Minutes, For App: TCK back-to-back user agent”
注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.log、SystemErr.log、trace.log 和 activity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。 - 症状:向 SIP 容器发送新的 INVITE 消息时从容器接收到大量“480 服务不可用”消息。当服务器处于此状态时,您还有可能会见到 SystemOut.log 中出现以下消息:“LoadManager E LoadManager warn.server.oveloaded”。
解决方案:典型原因是超出其中一个 SIP 容器可配置尺度。这包括“最大应用程序会话数”值和“每个平均时间段的最大消息数”值。解决方案是将这些值调高。
- 症状:大量重复发送,调用未完成并且 SystemErr.log 中出现 OutOfMemory 异常。
解决方案:这通常意味着与容器相关联的 VM 堆大小不够大,应该向上调整。可从管理控制台调整此值。
- 症状:在向 SIP 代理发送 SIP 请求时接收到“503 服务不可用”。
解决方案:这通常意味着代理上未设置缺省集群(或与消息相匹配的集群路由规则)。当已经配置好 SIP 代理而后端 SIP 容器已停止或崩溃时,也会发生这种情况。
- 症状:在向 SIP 代理发送 SIP 请求时接收到“404 找不到”。
解决方案:这通常意味着未对缺省集群中的容器设置虚拟主机。这也意味着代理的缺省集群中的服务器未包含 SIP 应用程序或者该消息与缺省集群中安装的其中一个应用程序不匹配。
- 症状:发生“内存不足”类型的行为。
解决方案:这可能是因为最大堆大小设置得过低。因为会话存在一段很长的调用持续时间,所以 SIP 应用程序会消耗大量内存。512 MB 最大堆大小不能为 SIP 通信工作负载提供足够的内存。将 SIP 应用程序的最大堆大小设置为最小建议值 768 MB 或更高。
- 症状:在向 SIP 代理发送 SIP 容器时接收到“403 禁止访问”。
解决方案:这通常意味着未找到相应的 SIP 应用程序来处理所接收的 SIP 请求(没有匹配规则与消息相匹配)。