[Linux]

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

  1. 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:

    /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
    Dependendo do driver Ethernet que está instalado, algumas dessas opções podem precisar de alteração.
  2. Ajustando o kernel Linux.
    O ajuste de kernel Linux utiliza os seguintes comandos:
    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 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.
  3. Ajuste de SIP para WebSphere Application Server. O ajuste do SIP para o WebSphere Application Server é concluído usando as seguintes etapas:
    1. Crie um conjunto de encadeamentos separado para o contêiner do servlet SIP. Siga este caminho no console administrativo:
      1. Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
      2. Em Propriedades Adicionais, clique em Conjuntos de Encadeamentos > Novo.
      3. No campo Name, digite SipContainer.
      4. Nos campos Tamanho Mínimo e Tamanho Máximo, insira 15. Esses valores devem ser adequados para a maioria dos aplicativos.
      5. Clique em OK.
    2. Crie propriedades customizadas para o contêiner de Servlet SIP. Siga este caminho no console administrativo:
      1. Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
      2. Clique em Contêiner SIP.
      3. Em Propriedades adicionais, clique em Propriedades Customizadas > Novo.
      4. No campo Nome, insira javax.sip.max.object.pool.size.
      5. No campo Valor, insira 1000.
      6. Clique em OK.
      7. No campo Nome, insira max.tu.pool.size.
      8. No campo Valor, insira 1000.
      9. Clique em OK.
      10. No campo Nome, insira com.ibm.sip.sm.lnm.size.
      11. No campo Valor, insira 8.
      12. Clique em OK.
    3. 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:
      1. Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
      2. Clique em Contêiner SIP > Cadeia de Transporte > SIPCInboundDefaultUDP > Canal de Entrada UDP (UDP1).
      3. Em Propriedades Adicionais, clique em Propriedades Customizadas > Novo.
      4. No campo Nome, insira receiveBufferSizeSocket.
      5. No campo Valor, insira 3000000.
      6. Clique em OK.
      7. No campo Nome, insira sendBufferSizeSocket.
      8. No campo Valor, insira 3000000.
    4. Especifique as propriedades gerais do contêiner do servlet SIP. Siga este caminho no console administrativo:
      1. Clique em Servidores > Tipos de Servidor > Servidores de Aplicativos do WebSphere > server_name.
      2. 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.
      3. 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.
      4. 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.
      5. Configure o conjunto de encadeamentos para o contêiner SIP recentemente criado (para o nome suspenso "SipContainer").
    5. Ajuste a política da coleta de lixo JVM (Java Virtual Machine). Siga este caminho no console administrativo:
      1. Clique em Servidores > Tipos de Servidor > WebSphere Application Servers > server_name.
      2. Em Infra-estrutura do Servidor, clique em Gerenciamento Java e de Processo > Definição de Processo.
      3. [z/OS]Clique em Controle.
      4. Em Propriedades Adicionais, clique em Java Virtual Machine.
      5. 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 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.
      bprac

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
Nome do arquivo: tsip_tunelinux.html