[Linux]

SIP-Servlets für Linux optimieren

Verwenden Sie die Optimierungstipps für SIP-Servlets (Session Initiation Protocol), wenn Sie mit einem Linux-2.6-Kernel arbeiten.

Informationen zu diesem Vorgang

Ein SIP-Servlet (Session Initiation Protocol), das unter Belastung steht, kann Nachrichten erneut übertragen oder Aufrufe übergehen. Die Warteschlangen des UDP-Socket können sich füllen. Bei einer Überprüfung der Ausgabe einer ausführlichen Garbage-Collection kann sich herausstellen, dass die Garbage-Collections relativ lang dauern, z. B. 0,5 bis 1,5 Sekunden. Die Ursache dieses Problems ist die fehlende Optimierung von WebSphere® Application Server und/oder des Ethernet-Treibers und/oder des Betriebssystems Linux® für SIP-Anwendungen. Sie können die folgenden Optimierungsstufen anwenden.
Anmerkung: Die folgenden Empfehlungen wurden nur unter Red Hat Enterprise Linux 4 getestet und werden hier ohne gesetzliche Gewährleistung bereitgestellt.

Vorgehensweise

  1. Linux-Ethernet-Treiber optimieren.

    Die Optimierung des Linux-Ethernet-Treibers beginnt mit der Auswahl des besten Ethernet-Treibers. Der empfohlene Treiber für HS20-Blades ist beispielsweise der Treiber tg3-3.43b (oder höher). Die folgenden Shell-Befehle wurden zum Optimieren des Ethernet-Treibers für den Linux-Kernel verwendet:

    /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
    Je nach installiertem Ethernet-Treiber müssen einige dieser Optionen geändert werden.
  2. Linux-Kernel optimieren.
    Für die Optimierung des Linux-Kernel wurden die folgenden Befehle verwendet:
    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
    Diese Konfiguration kann für eine bestimmte Anwendung nicht optimal sein. In diesem Fall müssen Sie die Konfiguration anpassen, um die beste Leistung zu erzielen. Sie können diese Werte jedoch als Ausgangspunkt verwenden.
  3. SIP-Optimierung für WebSphere Application Server. Führen Sie die folgenden Schritte aus, um SIP für WebSphere Application Server zu optimieren:
    1. Erstellen Sie einen separaten Thread-Pool für den SIP-Servlet-Container. Verwenden Sie in der Administrationskonsole den folgenden Navigationspfad:
      1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.
      2. Klicken Sie unter "Weitere Eigenschaften" auf Thread-Pools > Neu.
      3. Geben Sie SipContainer im Feld "Name" ein.
      4. Geben Sie in den Feldern Mindestgröße und Maximale Größe jeweils 15 ein. Diese Werte sind für die meisten Anwendungen ausreichend.
      5. Klicken Sie auf OK.
    2. Erstellen Sie angepasste Eigenschaften für den SIP-Servlet-Container. Verwenden Sie in der Administrationskonsole den folgenden Navigationspfad:
      1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.
      2. Klicken Sie auf SIP-Container.
      3. Klicken Sie unter Weitere Eigenschaften auf Angepasste Eigenschaften > Neu.
      4. Geben Sie javax.sip.max.object.pool.size im Feld Name ein.
      5. Geben Sie 1000 im Feld Wert ein.
      6. Klicken Sie auf OK.
      7. Geben Sie max.tu.pool.size im Feld Name ein.
      8. Geben Sie 1000 im Feld Wert ein.
      9. Klicken Sie auf OK.
      10. Geben Sie com.ibm.sip.sm.lnm.size im Feld "Name" ein.
      11. Geben Sie 8 im Feld "Wert" ein.
      12. Klicken Sie auf OK.
    3. Erstellen Sie angepasste Eigenschaften für den SIPUDP-Kanal, wenn User Datagram Protocol (UDP) der primäre Transport für den SIP-Datenverkehr ist. Verwenden Sie in der Administrationskonsole den folgenden Navigationspfad:
      1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.
      2. Klicken Sie auf SIP-Container > Transportkette > SIPCInboundDefaultUDP > UDP-Kanal für eingehende Anforderungen (UDP1).
      3. Klicken Sie unter Weitere Eigenschaften auf Angepasste Eigenschaften > Neu.
      4. Geben Sie receiveBufferSizeSocket im Feld Name ein.
      5. Geben Sie 3000000 im Feld Wert ein.
      6. Klicken Sie auf OK.
      7. Geben Sie sendBufferSizeSocket im Feld Name ein.
      8. Geben Sie 3000000 im Feld Wert ein.
    4. Geben Sie die allgemeinen Eigenschaften für den SIP-Servlet-Container an. Verwenden Sie in der Administrationskonsole den folgenden Navigationspfad:
      1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.
      2. Geben Sie einen Wert für "Maximale Anzahl der Sitzungen" ein. Der Wert für die maximale Anzahl der Sitzungen kann wie folgt berechnet werden: Maximale Haltezeit oder Sitzungszeitlimit x Aufrufrate x Sicherheitsfaktor.
      3. Geben Sie einen Wert für "Maximale Anzahl an Nachrichten pro Zeitraum für Durchschnittsermittlung". Der Wert für die maximale Anzahl an Nachrichten pro Zeitraum für Durchschnittsermittlung kann wie folgt berechnet werden: Maximale Aufrufhaltezeit oder Sitzungszeitlimit x Maximale Rate an SIP-Nachrichten x Sicherheitsfaktor.
      4. Geben Sie einen Wert für "Maximale Größe der Verteilerwarteschlange" ein. Die maximale Größe der Verteilerwarteschlange kann wie folgt berechnet werden: Maximale Rate an SIP-Nachrichten x Maximale Latenzzeit für SIP-Verarbeitung x Sicherheitsfaktor.
      5. Setzen Sie den Thread-Pool auf den neu erstellten Thread-Pool für den SIP-Container (Dropdown-Name "SipContainer").
    5. Optimieren Sie die Richtlinie für die JVM-Garbage-Collection. Verwenden Sie in der Administrationskonsole den folgenden Navigationspfad:
      1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername.
      2. Klicken Sie unter "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition.
      3. [z/OS]Klicken Sie auf Steuerung.
      4. Klicken Sie unter Weitere Eigenschaften auf Java Virtual Machine.
      5. Geben Sie im Feld "Generische JVM-Argumente" den folgenden Wert in einer fortlaufenden Zeile ein: "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000".
      Bewährtes Verfahren Bewährtes Verfahren:
      • Sie können in den Feldern "Anfangsgröße des Heap-Speichers" und "Maximale Größe des Heap-Speichers" den Wert 1500 (MB) eingeben.
      • Außerdem empfiehlt es sich, für die Leistungstests und Optimierungsoperationen die Option Ausführliche Garbage-Collection zu aktivieren.
      • Wenn Ihre Anwendung Objekte zuordnet, die größer als 64 KB sind, kann es nützlich sein, einen großen Objektbereich (Large Object Area, LOA) im Heapspeicher zu reservieren. Dies geschieht durch Hinzufügen des JVM-Arguments -Xloaminimum0.xy, wobei xy den für große Objekte zu reservierenden Heapspeicher in Prozent angibt. Nähere Informationen zu den JVM-Argumenten finden Sie in der Veröffentlichung Java Diagnostics Guide 6.
      bprac

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
Dateiname:tsip_tunelinux.html