![[Linux]](../images/linux.gif)
Ajustando os Servlets SIP para Linux
Use as dicas de ajuste para servlets SIP (Session Initiation Protocol, Protocolo de Inicialização de Sessão) quando em execução em um kernel Linux 2.6.
Sobre Esta Tarefa
Um servlet SIP (Session Initiation Protocol) sob carga pode retransmitir
as mensagens ou perder as chamadas. As filas de soquete UDP podem ser preenchidas. Uma
revisão da saída da coleta de lixo detalhada pode mostrar que existem tempos de coleta de
lixo bem longos, por exemplo, 0,5 a 1,5 segundos. A causa desse problema é que o driver
Ethernet, o sistema operacional Linux®, o WebSphere® Application Server ou qualquer
combinação dos itens não são ajustados para os aplicativos SIP. Você pode aplicar os seguintes níveis de ajuste.
Nota: As seguintes recomendações foram
testadas no Red Hat Enterprise Linux 4 apenas e são fornecidas no estado em que se
encontram sem qualquer garantia implícita.
Procedimento
- Ajustando o driver Linux Ethernet.
O ajuste do driver Linux Ethernet é iniciado, selecionado o melhor driver Ethernet. Por exemplo, o driver recomendado dos blades HS20 é o driver tg3-3.43b (ou posterior). Os seguintes comandos de shell foram utilizados para ajustar o driver Linux kernel Ethernet:
Dependendo do driver Ethernet que está instalado, algumas dessas opções podem precisar de alteração./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
- Ajustando o kernel Linux. O ajuste de kernel Linux utiliza os seguintes comandos:
Esta configuração pode não ser ótima para um determinado aplicativo e você talvez precise ajustar a configuração para alcançar o melhor desempenho. No entanto, você pode utilizar esses valores como um ponto 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. O ajuste do SIP para o WebSphere Application Server é concluído usando as seguintes etapas:
- Crie um conjunto de encadeamentos separado para o contêiner do servlet SIP. Siga este caminho no console administrativo:
- Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
- Em Propriedades Adicionais, clique em Conjuntos de Encadeamentos > Novo.
- No campo Name, digite SipContainer.
- Nos campos Tamanho Mínimo e Tamanho Máximo, insira 15. Esses valores devem ser adequados para a maioria dos aplicativos.
- Clique em OK.
- Crie propriedades customizadas para o contêiner de Servlet SIP. Siga este caminho no console administrativo:
- Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
- Clique em Contêiner SIP.
- Em Propriedades adicionais, clique em Propriedades Customizadas > Novo.
- No campo Nome, insira javax.sip.max.object.pool.size.
- No campo Valor, insira 1000.
- Clique em OK.
- No campo Nome, insira max.tu.pool.size.
- No campo Valor, insira 1000.
- Clique em OK.
- No campo Nome, insira com.ibm.sip.sm.lnm.size.
- No campo Valor, insira 8.
- Clique em OK.
- Crie propriedades customizadas para o canal SIPUDP, se o UDP (User Datagram Protocol)
for o transporte principal para o tráfego SIP. Siga este caminho no console administrativo:
- Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
- Clique em Contêiner SIP > Cadeia de Transporte > SIPCInboundDefaultUDP > Canal de Entrada UDP (UDP1).
- Em Propriedades Adicionais, clique em Propriedades Customizadas > Novo.
- No campo Nome, insira receiveBufferSizeSocket.
- No campo Valor, insira 3000000.
- Clique em OK.
- No campo Nome, insira sendBufferSizeSocket.
- No campo Valor, insira 3000000.
- Especifique as propriedades gerais do contêiner do servlet SIP. Siga este caminho no console administrativo:
- Clique em Servidores > Tipos de Servidor > Servidores de Aplicativos do WebSphere > server_name.
- Digite o Valor Máximo de Sessões de Aplicativos. O Valor Máximo de Sessões de Aplicativos pode ser calculado como: Maximum call hold time or session timeout x Call rate x Safety factor.
- Digite o Máximo de Mensagens por valor do período médio. O Máximo de Mensagens por Valor de Período Médio pode ser calculado como: Maximum call hold time or session timeout x Maximum rate of SIP messages x Safety factor.
- Digite o Valor Máximo do Tamanho da Fila de Dispatch. O Valor Máximo do Tamanho da Fila de Dispatch pode ser calculado como: Maximum rate of SIP messages x Maximum latency in SIP processing x Safety factor.
- Configure o conjunto de encadeamentos para o contêiner SIP recentemente criado (para o nome suspenso "SipContainer").
- Ajuste a política da coleta de lixo JVM (Java Virtual Machine). Siga este caminho no console administrativo:
- Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
- Em Infra-estrutura do Servidor, clique em Gerenciamento Java e de Processo > Definição de Processo.
Clique em Controle.
- Em Propriedades Adicionais, clique em Java Virtual Machine.
- No campo Argumentos JVM genéricos, insira o seguinte valor como uma linha contínua: "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000".
Boas Práticas:
- Você pode incluir um valor de 1500 MB nos campos Tamanho de heap inicial e Tamanho de heap máximo.
- Recomendamos ativar a opção Coleta de lixo detalhada durante operações de teste de desempenho ou de ajuste.
- Se seu aplicativo alocar objetos maiores que 64 KB em tamanho, pode ser benéfico reservar uma grande área de objeto (LOA) no heap. Isso é feito incluindo o argumento JVM -Xloaminimum0.xy, onde xy indica a porcentagem do heap a ser reservada para objetos grandes. Para obter mais informações sobre os argumentos JVM, consulte o Manual de Diagnóstico Java 6.
- Crie um conjunto de encadeamentos separado para o contêiner do servlet SIP. Siga este caminho no console administrativo:


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