[Linux]

为 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 上经过测试,并且提供它们时不附带任何隐含保证。

过程

  1. 调整 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
    根据已安装的以太网驱动程序,下列某些选项可能需要更改。
  2. 调整 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
    此配置对于给定应用程序可能不是最优的,并且您可能需要调整配置以获取最佳性能。但是,您可以在一开始使用这些值。
  3. 针对 WebSphere® Application Server 进行 SIP 调整。 执行以下步骤来完成针对 WebSphere Application Server 的 SIP 调整:
    1. 为 SIP Servlet 容器创建单独的线程池。 在管理控制台中遵循以下路径:
      1. 单击服务器 > 服务器类型 > WebSphere Application Server > server_name
      2. 在“其他属性”下,单击线程池 > 新建
      3. 在“名称”字段中,输入 SipContainer
      4. 最小大小最大大小字段中,输入 15。这些值对于大多数应用程序来说足够了。
      5. 单击确定
    2. 为 SIP Servlet 容器创建定制属性。 在管理控制台中遵循以下路径:
      1. 单击服务器 > 服务器类型 > WebSphere Application Server > server_name
      2. 单击 SIP 容器
      3. 其他属性下面,单击定制属性 > 新建
      4. 名称字段中,输入 javax.sip.max.object.pool.size
      5. 字段中,输入 1000
      6. 单击确定
      7. 名称字段中,输入 max.tu.pool.size
      8. 字段中,输入 1000
      9. 单击确定
      10. 在“名称”字段中,输入 com.ibm.sip.sm.lnm.size
      11. 在“值”字段中,输入 8
      12. 单击确定
    3. 如果用户数据报协议 (UDP) 是 SIP 通信的主要传输方式,那么为 SIPUDP 通道创建定制属性。 在管理控制台中遵循以下路径:
      1. 单击服务器 > 服务器类型 > WebSphere Application Server > server_name
      2. 单击 SIP 容器 > 传输链 > SIPCInboundDefaultUDP > UDP 入站通道 (UDP1)
      3. 其他属性下面,单击定制属性 > 新建
      4. 名称字段中,输入 receiveBufferSizeSocket
      5. 字段中,输入 3000000
      6. 单击“确定”。
      7. 名称字段中,输入 sendBufferSizeSocket
      8. 字段中,输入 3000000
    4. 指定 SIP Servlet 容器常规属性。 在管理控制台中遵循以下路径:
      1. 单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name
      2. 输入“最大应用程序会话数”的值。“最大应用程序会话数”的值可按如下方式计算:最大调用持续时间或会话超时 x 调用速率 x 安全因子
      3. 输入“每个平均时间段的最大消息数”的值。“每个平均时间段的最大消息数”的值可按如下方式计算:最大调用持续时间或会话超时 x SIP 消息的最大速率 x 安全因子
      4. 输入“最大调度队列大小”的值。“最大调度队列大小”的值可按如下方式计算:SIP 消息的最大速率 x SIP 处理的最长等待时间 x 安全因子
      5. 将线程池设置为新创建的 SIP 容器线程池(设置为下拉名称“SipContainer”)。
    5. 调整 Java 虚拟机 (JVM) 垃圾回收策略。 在管理控制台中遵循以下路径:
      1. 单击服务器 > 服务器类型 > WebSphere Application Server > server_name
      2. 在“服务器基础结构”下,单击 Java 和进程管理 > 进程定义
      3. [z/OS]单击控制
      4. 其他属性下,单击 Java 虚拟机
      5. 在“通用 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。
      bprac

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
文件名:tsip_tunelinux.html