![[Linux]](../images/linux.gif)
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
- 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:
En función del controlador Ethernet que esté instalado, es posible que sea necesario cambiar alguna de estas opciones./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
- Ajuste del kernel de Linux. El ajuste del kernel de Linux utiliza los siguientes mandatos:
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.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
- Ajuste de SIP para WebSphere Application Server. El ajuste SIP para WebSphere Application Server se lleva a cabo realizando los siguientes pasos:
- Cree una agrupación de hebras distinta para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
- Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
- En Propiedades adicionales, pulse Agrupaciones de hebras > Nueva.
- En el campo Nombre, escriba SipContainer.
- 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.
- Pulse Aceptar.
- Cree propiedades personalizadas para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
- Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
- Pulse Contenedor SIP.
- En Propiedades adicionales, pulse Propiedades personalizadas > Nueva.
- En el campo Nombre, escriba javax.sip.max.object.pool.size.
- En el campo Valor, escriba 1000.
- Pulse Aceptar.
- En el campo Nombre, escriba max.tu.pool.size.
- En el campo Valor, escriba 1000.
- Pulse Aceptar.
- En el campo Nombre, escriba com.ibm.sip.sm.lnm.size.
- En el campo Valor, escriba 8.
- Pulse Aceptar.
- 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:
- Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
- Pulse Contenedor SIP > Cadena de transporte > SIPCInboundDefaultUDP > Canal de entrada UDP (UDP1).
- En Propiedades adicionales, pulse Propiedades adicionales > Nueva.
- En el campo Nombre, escriba receiveBufferSizeSocket.
- En el campo Valor, escriba 3000000.
- Pulse Aceptar.
- En el campo Nombre, escriba sendBufferSizeSocket.
- En el campo Valor, escriba 3000000.
- Especifique las propiedades generales del contenedor de servlets SIP. Siga estos pasos en la consola administrativa:
- Pulse Servidores > Tipos de servidor > Servidores de aplicaciones WebSphere > nombre_servidor.
- 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.
- 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.
- 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.
- Establezca la agrupación de hebras en la agrupación de hebras de contenedor SIP recién creada (en nombre desplegable "SipContainer").
- Ajuste la política de recogida de basura de la Java Virtual Machine (JVM). Siga estos pasos en la consola administrativa:
- Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
- En Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso.
Pulse Control.
- En Propiedades adicionales, pulse Máquina virtual Java.
- 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:
- 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.
- Cree una agrupación de hebras distinta para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:


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