[Linux]

Linux용 SIP 서블릿 튜닝

Linux 2.6 커널에서 실행할 때 SIP(Session Initiation Protocol) 서블릿에 대한 튜닝 팁을 사용합니다.

이 태스크 정보

부하 상태의 SIP(Session Initiation Protocol) 서블릿이 메시지를 재전송하거나 호출을 제거할 수 있습니다. UDP 소켓 큐가 채울 수 있습니다. 자세한 가비지 콜렉션 출력 검토 결과 아주 긴 가비지 콜렉션 시간이 있음을 나타낼 수 있습니다. 예를 들어 0.5 - 1.5초입니다. 이 문제점의 원인은 이더넷 드라이버, Linux® 운영 체제, WebSphere® Application Server 또는 해당 항목의 임의의 조합이 SIP 애플리케이션에 대해 튜닝되지 않았기 때문입니다. 다음 튜닝 레벨을 적용할 수 있습니다.
참고: 다음 권장사항은 Red Hat Enterprise Linux 4에서만 테스트되었으며 어떠한 묵시적 보증도 없이 현재 상태로 제공됩니다.

프로시저

  1. Linux 이더넷 드라이버를 튜닝하십시오.

    Linux 이더넷 드라이버 튜닝은 가장 적합한 이더넷 드라이버를 선택하는 것부터 시작합니다. 예를 들어, HS20 블레이드 권장 드라이버는 tg3-3.43b 드라이버 이상입니다. 다음 쉘 명령은 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
    설치된 이더넷 드라이버에 따라 다음 옵션 중 일부를 변경해야 합니다.
  2. Linux 커널을 튜닝하십시오.
    Linux 커널 튜닝은 다음 명령을 사용합니다.
    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
    이 구성은 지정된 애플리케이션에 대해 최적화되지 않았을 수 있으며 최상의 성능을 구현하기 위해 구성을 조정해야 합니다. 그러나 해당 값을 시작점으로 사용할 수는 있습니다.
  3. WebSphere® Application Server에 대한 SIP를 튜닝하십시오. WebSphere Application Server용 SIP 튜닝은 다음 단계에 따라 완료됩니다.
    1. SIP 서블릿 컨테이너에 대해 별도의 스레드 풀을 작성하십시오. 관리 콘솔에서 이 경로에 따르십시오.
      1. 서버 > 서버 유형 > WebSphere Application Sever > server_name을 클릭하십시오.
      2. 추가 특성 아래에서 스레드 풀 > 새로 작성을 클릭하십시오.
      3. 이름 필드에 SipContainer를 입력하십시오.
      4. 최소 크기최대 크기 필드에 15를 입력하십시오. 이러한 값은 대부분의 애플리케이션에 대해 충분합니다.
      5. 확인을 클릭하십시오.
    2. SIP 서블릿 컨테이너에 대한 사용자 정의 특성을 작성하십시오. 관리 콘솔에서 이 경로에 따르십시오.
      1. 서버 > 서버 유형 > WebSphere Application Sever > server_name을 클릭하십시오.
      2. SIP 컨테이너를 클릭하십시오.
      3. 추가 특성 아래에서 사용자 정의 특성 > 새로 작성을 클릭하십시오.
      4. 이름 필드에 javax.sip.max.object.pool.size를 입력하십시오.
      5. 필드에 1000을 입력하십시오.
      6. 확인을 클릭하십시오.
      7. 이름 필드에 max.tu.pool.size를 입력하십시오.
      8. 필드에 1000을 입력하십시오.
      9. 확인을 클릭하십시오.
      10. 이름 필드에 com.ibm.sip.sm.lnm.size를 입력하십시오.
      11. 값 필드에 8을 입력하십시오.
      12. 확인을 클릭하십시오.
    3. UDP(User Datagram Protocol)가 SIP 통신량의 1차 전송인 경우 SIPUDP 채널에 대한 사용자 정의 특성을 작성하십시오. 관리 콘솔에서 이 경로에 따르십시오.
      1. 서버 > 서버 유형 > WebSphere Application Sever > server_name을 클릭하십시오.
      2. SIP 컨테이너 > 전송 체인 > SIPCInboundDefaultUDP > UDP 인바운드 채널(UDP1)을 클릭하십시오.
      3. 추가 특성 아래에서 사용자 정의 특성 > 새로 작성을 클릭하십시오.
      4. 이름 필드에 receiveBufferSizeSocket을 입력하십시오.
      5. 필드에 3000000을 입력하십시오.
      6. 확인을 클릭하십시오.
      7. 이름 필드에 sendBufferSizeSocket을 입력하십시오.
      8. 필드에 3000000을 입력하십시오.
    4. SIP 서블릿 컨테이너 일반 특성을 지정하십시오. 관리 콘솔에서 이 경로에 따르십시오.
      1. 서버 > 서버 유형 > WebSphere Application Sever > server_name을 클릭하십시오.
      2. 최대 애플리케이션 세션 값을 입력하십시오. 최대 애플리케이션 세션 값은 최대 호출 보유 시간 또는 세션 제한시간 x 호출 비율 x 안전 계수로 계산할 수 있습니다.
      3. 평균 기간당 최대 메시지 값을 입력하십시오. 평균 기간당 최대 메시지 값은 최대 호출 보유 시간 또는 세션 제한시간 x SIP 메시지 최대 비율 x 안전 계수로 계산할 수 있습니다.
      4. 최대 디스패치 큐 크기 값을 입력하십시오. 최대 디스패치 큐 크기 값은 SIP 메시지 최대 비율 x SIP 처리 최대 대기 시간 x 안전 계수로 계산할 수 있습니다.
      5. 스레드 풀을 새로 작성된 SIP 컨테이너 스레드 풀(드롭 다운 이름 "SipContainer")로 설정하십시오.
    5. JVM(Java Virtual Machine) 가비지 콜렉션 정책을 튜닝하십시오. 관리 콘솔에서 이 경로에 따르십시오.
      1. 서버 > 서버 유형 > WebSphere Application Sever > server_name을 클릭하십시오.
      2. 서버 인프라에서 Java 및 프로세스 관리 > 프로세스 정의를 클릭하십시오.
      3. [z/OS]제어를 클릭하십시오.
      4. 추가 특성 아래에서 JVM(Java Virtual Machine)을 클릭하십시오.
      5. 일반 JVM 인수 필드에 다음 값을 한 행으로 입력하십시오. "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000".
      우수 사례 우수 사례:
      • 초기 힙 크기 및 최대 힙 크기 필드에 값 1500MB를 추가할 수 있습니다.
      • 성능 테스트 또는 튜닝 조작 동안 자세한 가비지 콜렉션 옵션을 사용 가능하게 설정하십시오.
      • 애플리케이션에서 크기가 64KB보다 큰 오브젝트를 할당하는 경우 힙에 대형 오브젝트 영역(LOA)을 예약하는 것이 좋습니다. JVM 인수 -Xloaminimum0.xy를 추가하여 수행하며 여기서, xy는 대형 오브젝트용으로 예약할 힙의 백분율을 나타냅니다. JVM 인수에 대한 자세한 정보는 Java 진단 안내서 6을 참조하십시오.
      bprac

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
파일 이름:tsip_tunelinux.html