Solaris 시스템 성능 조정_TCP Timer

2007. 1. 26. 16:37IT/Network

Solaris 시스템 성능 조정

다음 성능 조정 매개변수는 Solaris 운영 체제로 한정됩니다. Solaris 운영 체제는 WebSphere Application Server 제품이 아니므로 변경될 수 있고 결과가 다를 수 있다는 점에 유의하십시오.

이 타스크의 수행 목적 및 시기

Solaris 운영 체제에서 WebSphere Application Server는 Sun Hotspot JVM(Java Virtual Machine)에서 실행합니다. Sun JVM의 성능 최적화 기능을 이용하기 위해서는 Sun JVM의 올바른 조정 매개변수를 사용하는 것이 중요합니다. JVM 성능 조정에 대한 자세한 정보는 JVM(Java Virtual Machine) 성능 조정 주제를 참조하십시오. 또한 WebSphere Application Server가 충분한 자원을 갖도록 보장하려면 Solaris 운영 체제에 특정한 다음 매개변수를 고려하십시오.

이 타스크에 대한 단계(구성에 따라 다름)

  • Solaris 파일 설명자(ulimit)
    • 설명: 지원되는 열린 파일의 최대수를 지정합니다. 이 매개변수 값이 너무 낮은 경우, WebSphere Application Server stderr.log 파일에 너무 많은 파일이 열렸음 오류가 표시됩니다.
    • 보기 또는 설정 방법: ulimit 명령에 대한 UNIX 참조 페이지에서 다른 쉘의 구문을 확인하십시오. KornShell(ksh) 쉘의 경우, ulimit -n 1024 명령을 사용하십시오. 현재 설정을 표시하려면 ulimit -a 명령을 사용하십시오. 값을 설정하려면 ulimit -n 2000 명령을 사용하십시오.
    • 기본값: 없음
    • 권장 값: 8000
  • Solaris TCP_TIME_WAIT_INTERVAL
    • 설명: TCP/IP에 닫힌 연결 제어 블록의 보존 기간을 알려줍니다. 응용프로그램이 TCP/IP 연결을 완료하면, 지정한 시간 동안 제어 블록이 보존됩니다. 연결 비율이 높을 때, TCP/IP 연결의 큰 백로그가 누적되어 서버 성능을 저하시킬 수 있습니다. 서버는 특정 최대 기간 중에 정지할 수 있습니다. 서버가 정지하는 경우, netstat 명령은 HTTP 서버에 대해 열린 많은 소켓이 CLOSE_WAIT 또는 FIN_WAIT_2 상태에 있음을 표시합니다. 최고 4분 정도의 눈에 띄는 지연이 발생할 수 있고 그 동안 서버는 어떤 응답도 전송하지 않지만, 시스템 프로세스의 모든 활동과 함께 CPU 이용률이 여전히 높습니다.
    • 보기 또는 설정 방법: get 명령을 사용하여 현재 간격을 판별하고, set 명령을 사용하여 30초 간격을 지정하십시오. 예를 들어,
      ndd -get /dev/tcp tcp_time_wait_interval     
      ndd -set /dev/tcp tcp_time_wait_interval 30000
    • 기본값: Solaris 운영 체제에 대한 기본 시간 대기 간격은 240000밀리초, 즉 4분입니다.
    • 권장 값: 60000밀리초
  • Solaris TCP_FIN_WAIT_2_FLUSH_INTERVAL
    • 설명: FIN_WAIT_2 상태에 있는 연결이 해당 상태에 있지 못하게 하는 타이머 간격을 지정합니다. 연결 비율이 높을 때, TCP/IP 연결의 큰 백로그가 누적되어 서버 성능을 저하시킬 수 있습니다. 서버는 최대 기간 중에 정지할 수 있습니다. 서버가 정지하는 경우, netstat 명령 사용은 HTTP 서버에 대해 열린 많은 소켓이 CLOSE_WAIT 또는 FIN_WAIT_2 상태에 있음을 표시합니다. 최고 4분 정도의 눈에 띄는 지연이 발생할 수 있고 그 동안 서버는 어떤 응답도 전송하지 않지만, 시스템 프로세스의 모든 활동과 함께 CPU 이용률이 여전히 높습니다.
    • 보기 및 설정 방법: get 명령을 사용하여 현재 간격을 판별하고, set 명령을 사용하여 67.5초 간격을 지정하십시오. 예를 들면, 다음과 같습니다.
      ndd -get /dev/tcp tcp_fin_wait_2_flush_interval
      ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 67500
    • 기본값: 675000밀리초
    • 권장 값: 67500밀리초
  • Solaris TCP_KEEPALIVE_INTERVAL
    • 설명: keepAlive 패킷은 연결이 활성인 설정 상태에 머물도록 합니다.
    • 보기 또는 설정 방법: ndd 다음 명령을 사용하여 현재 값을 판별하거나 값을 설정하십시오. 예를 들면, 다음과 같습니다.

      ndd -set /dev/tcp tcp_keepalive_interval 300000

    • 기본값: 72000밀리초
    • 권장 값: 15000밀리초
  • Solaris TCP_KEEPALIVE_PROBES
    • 설명: 특정 연결이 중단되었다고 결정하기 전에 커널이 TCP 활성화 상태 지속 검사를 전송하는 횟수를 지정합니다.
    • 보기 또는 설정 방법: ndd 다음 명령을 사용하여 현재 값을 판별하거나 값을 설정하십시오. 예를 들면, 다음과 같습니다.

      ndd -set /dev/tcp tcp_keepalive_probes 5000

    • 기본값: 9000밀리초
    • 권장 값: 5000밀리초
  • Solaris 커널 semsys:seminfo_semume
    • 설명: 프로세스당 최대 세마포어 실행 취소 항목을 제한합니다. 이 설정이 최대값을 지정하기 때문에 매개변수는 메모리가 필요하지 않으면 추가 메모리의 사용을 유발하지 않습니다.
    • 보기 또는 설정 방법: 이 값은 /usr/sbin/sysdef 명령이 실행되는 경우 semume 매개변수로 표시됩니다. /etc/system 파일에 이 조정 매개변수에 대한 항목이 있을 수 있습니다. 다음과 같이 /etc/system 항목을 통해 이 매개변수를 설정하십시오.
      set semsys:seminfo_semume = 200
    • 기본값: 10
    • 권장 값: 200
  • Solaris 커널 semsys:seminfo_semopm
    • 설명: /usr/sbin/sysdef 명령이 실행되는 경우 semume 매개변수로 표시합니다. /etc/system 파일에 이 조정 매개변수에 대한 항목이 존재할 수 있습니다. 이 숫자는 semop 호출당 System V 세마포어 조작의 최대값입니다. 이 옵션에 대한 기본값은 동시 수행이 많은 시스템의 경우 너무 낮습니다.
    • 보기 또는 설정 방법: 다음과 같이 /etc/system 항목을 통해 이 매개변수를 설정하십시오.
      semsys:seminfo_semopm = 16384 
    • 기본값: 없음
    • 권장 값: 16384
  • 연결 백로그
    • 설명: 높은 비율의 수신 연결 요청에서 연결 장애가 발생할 때 다음 매개변수를 변경하십시오.
      ndd -get /dev/tcp tcp_conn_req_max_q 
      ndd -set /dev/tcp tcp_conn_req_max_q 8000
    • 기본값: Solaris 8의 경우 기본값은 128입니다.
    • 권장 값: 8000
    :
  • 대형 페이지 지원

    대형 페이지를 사용하면 큰 JVM 힙 관리의 CPU 오버헤드를 줄일 수 있습니다.

    Solaris 9에서는 대형 페이지 지원이 기본적으로 제공됩니다. JVM 힙에 대형 페이지를 사용하기 위해 운영 체제 또는 JVM 매개변수가 필요하지 않습니다.

    Solaris 8에서는 대형 페이지 지원을 제공하려면 ISM(Intimate Shared Memory) 기능을 이용해야 합니다. 대형 페이지 지원을 사용 가능하게 하는 지시사항은 http://java.sun.com/docs/hotspot/ism.html 웹 사이트를 참조하십시오.

'IT > Network' 카테고리의 다른 글

Tuning Solaris TCP parameters  (0) 2007.01.26
Port Scanning  (0) 2006.12.28
TCP Connetion  (0) 2006.12.28
RAID Level  (0) 2006.12.28
전력선 통신 시대??  (1) 2006.12.28