[Linux]

Ajuste de servlets SIP para Linux

Utilice las sugerencias de ajuste para servlets SIP (Session Initiation Protocol) cuando se ejecuten en un kernel de Linux 2.6.

Acerca de esta tarea

Un servlet SIP (Session Initiation Protocol) bajo carga puede retransmitir mensajes o perder llamadas. Las colas de sockets UDP pueden llenarse. La revisión de la salida de la recogida de basura detallada podría mostrar que los intervalos de recogida de basura son bastante largos, por ejemplo, de 0,5 a 1,5 segundos. La causa de este problema es que el controlador Ethernet, el sistema operativo Linux®, WebSphere® Application Server o cualquier combinación de los elementos no están ajustados para las aplicaciones SIP. Puede aplicar los siguientes niveles de ajuste.
Nota: Las siguientes recomendaciones sólo se han probado en Red Hat Enterprise Linux 4 y se proporcionan tal cual sin ninguna garantía implícita.

Procedimiento

  1. Ajuste del controlador Ethernet de Linux.

    El ajuste del controlador Ethernet de Linux Ethernet empieza seleccionando el mejor controlador Ethernet. Por ejemplo, el controlador recomendado para los blades HS20 es el controlador tg3-3.43b (o posteriores). Se han utilizado los siguientes mandatos de shell para ajustar el controlador Ethernet del kernel de 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
    En función del controlador Ethernet que esté instalado, es posible que sea necesario cambiar alguna de estas opciones.
  2. Ajuste del kernel de Linux.
    El ajuste del kernel de Linux utiliza los siguientes mandatos:
    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
    Esta configuración puede no ser óptima para una aplicación y podría necesitar ajustar la configuración para alcanzar el mejor rendimiento. No obstante, puede utilizar estos valores como punto de partida.
  3. Ajuste de SIP para WebSphere Application Server. El ajuste SIP para WebSphere Application Server se lleva a cabo realizando los siguientes pasos:
    1. Cree una agrupación de hebras distinta para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
      1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
      2. En Propiedades adicionales, pulse Agrupaciones de hebras > Nueva.
      3. En el campo Nombre, escriba SipContainer.
      4. En los campos Tamaño mínimo y Tamaño máximo, introduzca 15. Estos valores deben ser adecuados para la mayoría de las aplicaciones.
      5. Pulse Aceptar.
    2. Cree propiedades personalizadas para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
      1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
      2. Pulse Contenedor SIP.
      3. En Propiedades adicionales, pulse Propiedades personalizadas > Nueva.
      4. En el campo Nombre, escriba javax.sip.max.object.pool.size.
      5. En el campo Valor, escriba 1000.
      6. Pulse Aceptar.
      7. En el campo Nombre, escriba max.tu.pool.size.
      8. En el campo Valor, escriba 1000.
      9. Pulse Aceptar.
      10. En el campo Nombre, escriba com.ibm.sip.sm.lnm.size.
      11. En el campo Valor, escriba 8.
      12. Pulse Aceptar.
    3. Cree propiedades personalizadas para el canal SIPUDP si UDP (User Datagram Protocol) es el transporte primario para el tráfico SIP. Siga estos pasos en la consola administrativa:
      1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
      2. Pulse Contenedor SIP > Cadena de transporte > SIPCInboundDefaultUDP > Canal de entrada UDP (UDP1).
      3. En Propiedades adicionales, pulse Propiedades adicionales > Nueva.
      4. En el campo Nombre, escriba receiveBufferSizeSocket.
      5. En el campo Valor, escriba 3000000.
      6. Pulse Aceptar.
      7. En el campo Nombre, escriba sendBufferSizeSocket.
      8. En el campo Valor, escriba 3000000.
    4. Especifique las propiedades generales del contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
      1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones WebSphere > nombre_servidor.
      2. Escriba el valor Número máximo de sesiones de aplicación. El valor Número máximo de sesiones de aplicación se puede calcular como: Periodo máximo de mantenimiento de llamada o tiempo de espera de sesión x Índice de llamadas x Factor de seguridad.
      3. Escriba el valor Número máximo de mensajes por periodo promedio. El valor Número máximo de mensajes por periodo promedio puede calcularse como: Periodo máximo de mantenimiento de llamada o tiempo de espera de sesión x Índice máximo de mensajes SIP x Factor de seguridad.
      4. Escriba el valor Tamaño máximo de la cola de asignación. El valor Tamaño máximo de la cola de asignación puede calcularse como: Índice máximo de mensajes SIP x Máxima latencia en proceso SIP x Factor de seguridad.
      5. Establezca la agrupación de hebras en la agrupación de hebras de contenedor SIP recién creada (en nombre desplegable "SipContainer").
    5. Ajuste la política de recogida de basura de la Java Virtual Machine (JVM). Siga estos pasos en la consola administrativa:
      1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
      2. En Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso.
      3. [z/OS]Pulse Control.
      4. En Propiedades adicionales, pulse Máquina virtual Java.
      5. En el campo Argumentos de JVM genéricos, escriba el siguiente valor en una sola línea: "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000".
      Best practice Best practice:
      • Puede añadir un valor de 1500 MB a los campos de tamaño del almacenamiento dinámico inicial y tamaño máximo del almacenamiento dinámico.
      • Se recomienda habilitar la opción Recogida de basura detallada durante las operaciones de prueba o ajuste de rendimiento.
      • Si la aplicación asigna objetos de tamaño mayor que 64 KB, puede ser beneficioso reservar un área de objetos grandes (LOA) en el almacenamiento dinámico. Esto se realiza añadiendo el argumento de JVM -Xloaminimum0.xy, donde xy indica el porcentaje del almacenamiento dinámico que se reserva para los objetos grandes. Para obtener más información sobre los argumentos de JVM, consulte la publicación Java Diagnostics Guide 6.
      bprac

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
File name: tsip_tunelinux.html