![[Linux]](../images/linux.gif)
为 Linux 调整 SIP Servlet
在 Linux 2.6 内核上运行时,请使用有关会话启动协议 (SIP) servlet 的调整提示。
关于此任务
会话启动协议 (SIP) Servlet 在负荷不足的情况下可能会重复传输消息或删除调用。UDP
套接字队列可能已满。查看详细垃圾回收输出可能会显示垃圾回收时间相当地长,例如 0.5 秒到 1.5 秒。导致此问题的原因是以太网驱动程序、Linux® 操作系统、WebSphere® Application Server 或它们的各项组合未针对 SIP 应用程序进行调整。可应用下列级别的调整。
注: 下列建议仅在 Red Hat Enterprise Linux 4
上经过测试,并且提供它们时不附带任何隐含保证。
过程
- 调整 Linux 以太网驱动程序。
Linux 以太网驱动程序调整从选择最佳以太网驱动程序开始。例如,HS20 刀片机建议的驱动程序是 tg3-3.43b 驱动程序(或更高版本)。下列 shell 命令已经用于调整 Linux 内核以太网驱动程序:
根据已安装的以太网驱动程序,下列某些选项可能需要更改。/sbin/ifconfig eth0 txqueuelen 2000 /sbin/ifconfig eth1 txqueuelen 2000 ethtool -s eth0 autoneg off speed 1000 duplex full ethtool -A eth0 autoneg off rx on tx on ethtool -C eth0 adaptive-rx off adaptive-tx off rx- usecs 20 rx-frames 5 tx-usecs 60 tx-frames 11 ethtool -G eth0 rx 511 rx-jumbo 255 tx 511
- 调整 Linux 内核。 Linux 内核调整使用下列命令:
此配置对于给定应用程序可能不是最优的,并且您可能需要调整配置以获取最佳性能。但是,您可以在一开始使用这些值。echo 16777216 > /proc/sys/net/core/rmem_max echo 2097152 > /proc/sys/net/core/rmem_default echo 16777216 > /proc/sys/net/core/wmem_max echo 2097152 > /proc/sys/net/core/wmem_default echo 10000000 > /proc/sys/net/core/optmem_max echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_rmem echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_wmem echo 8388608 8388608 8388608 > /proc/sys/net/ipv4/tcp_mem echo 400 > /proc/sys/net/unix/max_dgram_qlen echo 400 > /proc/sys/net/core/message_burst echo 2800 > /proc/sys/net/core/mod_cong echo 1000 > /proc/sys/net/core/lo_cong echo 200 > /proc/sys/net/core/no_cong echo 2900 > /proc/sys/net/core/no_cong_thresh echo 3000 > /proc/sys/net/core/netdev_max_backlog
- 针对 WebSphere® Application Server 进行 SIP 调整。 执行以下步骤来完成针对 WebSphere Application Server 的 SIP 调整:
- 为 SIP Servlet 容器创建单独的线程池。 在管理控制台中遵循以下路径:
- 单击服务器 > 服务器类型 > WebSphere Application Server > server_name。
- 在“其他属性”下,单击线程池 > 新建。
- 在“名称”字段中,输入 SipContainer。
- 在最小大小和最大大小字段中,输入 15。这些值对于大多数应用程序来说足够了。
- 单击确定。
- 为 SIP Servlet 容器创建定制属性。 在管理控制台中遵循以下路径:
- 单击服务器 > 服务器类型 > WebSphere Application Server > server_name。
- 单击 SIP 容器。
- 在其他属性下面,单击定制属性 > 新建。
- 在名称字段中,输入 javax.sip.max.object.pool.size。
- 在值字段中,输入 1000。
- 单击确定。
- 在名称字段中,输入 max.tu.pool.size。
- 在值字段中,输入 1000。
- 单击确定。
- 在“名称”字段中,输入 com.ibm.sip.sm.lnm.size。
- 在“值”字段中,输入 8。
- 单击确定。
- 如果用户数据报协议 (UDP) 是 SIP 通信的主要传输方式,那么为 SIPUDP 通道创建定制属性。 在管理控制台中遵循以下路径:
- 单击服务器 > 服务器类型 > WebSphere Application Server > server_name。
- 单击 SIP 容器 > 传输链 > SIPCInboundDefaultUDP > UDP 入站通道 (UDP1)。
- 在其他属性下面,单击定制属性 > 新建。
- 在名称字段中,输入 receiveBufferSizeSocket。
- 在值字段中,输入 3000000。
- 单击“确定”。
- 在名称字段中,输入 sendBufferSizeSocket。
- 在值字段中,输入 3000000。
- 指定 SIP Servlet 容器常规属性。 在管理控制台中遵循以下路径:
- 单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name。
- 输入“最大应用程序会话数”的值。“最大应用程序会话数”的值可按如下方式计算:最大调用持续时间或会话超时 x 调用速率 x 安全因子。
- 输入“每个平均时间段的最大消息数”的值。“每个平均时间段的最大消息数”的值可按如下方式计算:最大调用持续时间或会话超时 x SIP 消息的最大速率 x 安全因子。
- 输入“最大调度队列大小”的值。“最大调度队列大小”的值可按如下方式计算:SIP 消息的最大速率 x SIP 处理的最长等待时间 x 安全因子。
- 将线程池设置为新创建的 SIP 容器线程池(设置为下拉名称“SipContainer”)。
- 调整 Java 虚拟机 (JVM) 垃圾回收策略。 在管理控制台中遵循以下路径:
- 单击服务器 > 服务器类型 > WebSphere Application Server > server_name。
- 在“服务器基础结构”下,单击 Java 和进程管理 > 进程定义。
单击控制。
- 在其他属性下,单击 Java 虚拟机。
- 在“通用 JVM 参数”字段中,在连续一行内输入以下值:“-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000”。
最佳实践:
- 可将值 1500 MB 添加至“初始堆大小”和“最大堆大小”字段。
- 建议您在性能测试或调整操作期间启用详细垃圾回收选项。
- 如果应用程序分配大小超过 64 KB 的对象,那么在堆中保留大对象区域 (LOA) 可能很有益。这是通过添加 JVM 参数 -Xloaminimum0.xy 来完成,其中 xy 指示要保留给大对象的堆百分比。有关 JVM 参数的更多信息,请参阅 Java 诊断指南 6。
- 为 SIP Servlet 容器创建单独的线程池。 在管理控制台中遵循以下路径:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
文件名:tsip_tunelinux.html