Sun Java System Application Server 9.1 배포 계획 설명서

4장 배포 확인 목록

이 부록에서는 Application Server에서 평가와 작업을 시작하기 위한 확인 목록을 제공합니다.

배포 확인 목록

표 4–1 확인 목록

구성 요소/기능

설명 

응용 프로그램

배포할 응용 프로그램에 대한 다음 요구 사항을 확인합니다. 

하드웨어

  • HADB 노드를 호스팅하는 하드웨어와 동일한 유형을 사용합니다.

  • 필요한 크기의 하드 디스크 공간 및 메모리를 설치합니다.

  • 크기 조정 연습을 사용하여 배포 요구 사항을 확인합니다.

    자세한 내용은 Sun Java System Application Server 9.1 릴리스 노트를 참조하십시오.

운영 체제

네트워크 인프라

  • 단일 실패 지점을 확인하고 해결합니다.

  • NIC 및 기타 네트워크 구성 요소가 제대로 구성되어 있는지 확인합니다.

  • ttcp 벤치마크 테스트를 실행하여 처리량이 요구 사항/예상 결과에 부합하는지 확인합니다.

  • HADB 노드가 제대로 설치되도록 rsh/ssh 기반 기본 설정을 구성합니다.

    자세한 내용은 Sun Java System Application Server 9.1 Installation Guide를 참조하십시오.

백엔드 및 기타 외부 데이터 소스

도메인 전문가나 공급업체와 함께 이러한 데이터 소스가 제대로 구성되어 있는지 확인합니다. 

시스템 변경 사항/구성

  • 성능/부하 테스트를 실행하기 전에 /etc/system 및 해당 Linux 항목의 변경 사항이 완료되었는지 확인합니다.

  • TCP/IP 설정 변경 사항이 완료되었는지 확인합니다.

  • 기본적으로 시스템에는 많은 서비스가 미리 구성되어 제공됩니다. 일부 서비스는 실행할 필요가 없습니다. 필요하지 않은 서비스를 해제하여 시스템 자원을 절약합니다.

  • Solaris의 경우 Setoolkit를 사용하여 시스템 동작을 확인합니다. 표시되는 플래그를 확인합니다.

    자세한 내용은 Sun Java System Application Server 9.1 Performance Tuning Guide를 참조하십시오.

Application Server 및 HADB 설치

HADB 구성

  • HADB 데이터 장치의 크기를 설정합니다.

  • DataBufferPoolSize를 정의합니다.

  • LogBufferSize를 정의합니다.

  • InternalBufferSize를 정의합니다.

  • NumberOfLocks를 설정합니다.

  • 다양한 Application Server 구성 요소에 대해 최적의 시간 초과 값을 설정합니다.

  • 파일 시스템에서 HADB 노드의 물리적 레이아웃을 만듭니다.

    자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서HADB 구성을 참조하십시오.

Application Server 구성

  • 로깅: 액세스 로그 회전 사용 가능

  • 올바른 로깅 수준을 선택합니다. 일반적으로 WARNING(경고)이 적절합니다.

  • 관리 콘솔을 사용하여 J2EE 컨테이너를 구성합니다.

  • 관리 콘솔을 사용하여 HTTP Listener를 구성합니다.

  • 관리 콘솔을 사용하여 ORB 스레드 풀을 구성합니다.

  • 원시 코드와 관련된 Type2 드라이버 또는 호출을 사용할 경우 LD_LIBRARY_PATH에 mtmalloc.so가 지정되어 있는지 확인합니다.

  • 적절한 지속성 범위 및 빈도가 사용되고 개별 웹/EJB 모듈에서 대체되지 않는지 확인합니다.

  • SFSB의 중요 메소드만 검사점이 지정되어 있는지 확인합니다.

    조정에 대한 자세한 내용은 Sun Java System Application Server 9.1 Performance Tuning Guide를 참조하십시오.

    구성에 대한 자세한 내용은 Sun Java System Application Server 9.1 관리 설명서를 참조하십시오.

로드 밸런서 구성

  • Web Server가 설치되어 있는지 확인합니다.

  • 로드 밸런서 플러그인이 Web Server에 설치되어 있는지 확인합니다.

  • 패치 확인이 비활성화되어 있는지 확인합니다.

  • KeepAliveQuery 매개 변수 값을 줄입니다. 값이 작을수록 부하가 적은 시스템의 대기 시간이 단축됩니다. 값이 클수록 부하가 높은 시스템의 처리량이 증가합니다.

    자세한 내용은 Sun Java System Application Server 9.1 Performance Tuning GuideKeep Alive를 참조하십시오.

Java 가상 머신 구성

  • 초기 최소 힙 및 최대 힙 크기를 각 인스턴스에 대해 1GB 이상의 동일한 값으로 설정합니다.

  • 자세한 내용은 Java Hotspot VM 옵션을 참조하십시오.

  • 여러 Application Server 인스턴스를 실행할 경우 프로세서 집합을 만들어 Application Server를 바인딩하는 것이 좋습니다. 이 방법은 CMS 컬렉터를 사용하여 이전 생성을 스윕하는 경우 유용합니다.

로드 밸런서의 시간 초과 구성

  • Response-time-out-in-seconds - Application Server 인스턴스가 비정상임을 선언할 때까지 로드 밸런서가 대기하는 시간입니다. 응용 프로그램의 응답 시간에 따라 이 값을 설정합니다. 너무 크게 설정하면 Application Server가 비정상으로 표시될 때까지 Web Server와 로드 밸런서 플러그인이 오래 대기합니다. 너무 작게 설정하여 Application Server의 응답 시간이 이 임계값을 넘어서면 인스턴스가 비정상으로 잘못 표시됩니다.

  • Interval-in-seconds - 비정상 인스턴스가 정상 상태로 돌아갔는지 확인할 때까지의 시간(초)입니다. 너무 작은 값은 로드 밸런서 플러그인에서 Application Server 인스턴스로 추가 트래픽을 발생시키고 너무 큰 값은 정상으로 전환된 인스턴스에 대한 요청 라우팅을 지연시킵니다.

  • Timeout-in-seconds - 상태 검사 요청에 대한 응답을 얻을 때까지의 기간입니다. 클러스터에 있는 시스템 간 트래픽에 따라 이 값을 조정하여 상태 검사가 성공하는지 확인합니다.

    자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서의 5 장, HTTP 로드 균형 조정 구성을 참조하십시오.

HADB의 시간 초과 구성

  • sql_client_timeout - 유휴 클라이언트에 대한 SQLSUB의 대기 시간입니다. 예를 들어 로그온한 클라이언트에서 요청을 보낸 다음 사용자 입력을 기다리는데, 30분 이상 유휴 상태인 클라이언트는 사용 불능으로 간주되어 세션이 종료됩니다. 너무 작은 값을 설정하면 SQL 세션이 조기에 종료될 수 있습니다. 너무 큰 값을 설정하면 유휴 상태가 아니라 종료된 SQL 세션이 자원을 점유합니다. 이로 인해 다른 SQL 클라이언트가 로그온하지 못할 수 있습니다. 이 변수를 조정할 경우 nsessions의 설정도 고려합니다. HADB JDBC 연결 풀 steady-pool-size가 max-pool-size보다 크면 idle-timeout-in-seconds를 sql_client_timeout보다 작게 설정할 수 있으므로 HADB에서 연결을 닫기 전에 Application Server 자체에서 연결을 닫을 수 있습니다. 기본값은 1800초입니다.

  • lock_timeout - 데이터에 액세스할 때까지 트랜잭션이 대기하는 최대 시간(밀리초)입니다. 초과되면 트랜잭션에서 "트랜잭션 시간 초과" 오류 메시지를 생성합니다.이러한 시간 초과는 다른 트랜잭션(교착 상태)에서 점유한 잠금을 기다리는 트랜잭션에 의해 발생하며 높은 서버 부하를 발생시킵니다. 이 값을 500밀리초 미만으로 설정하지 마십시오. 서버 로그에 "트랜잭션 시간 초과" 메시지가 표시될 경우 이 값을 늘립니다. HADB의 JDBC 연결 풀에 다음과 같이 등록 정보를 추가하여 잠금 시간 초과 값을 설정합니다. <property name=lockTimeout value="x"\>기본값은 5000밀리초입니다.

  • Querytimeout - 쿼리가 실행될 때까지 HADB가 대기하는 최대 시간(밀리초)입니다. 서버 로그에 쿼리 시간 초과를 나타내는 예외가 지속적으로 나타날 경우 이 값을 늘려 보십시오. HADB의 JDBC 연결 풀에 다음 등록 정보를 추가하여 값을 설정합니다. <property name=QueryTimeout value="x"\>기본값은 30초입니다.

  • loginTimeout - HADB에 로그인할 때까지 클라이언트가 대기하는 최대 시간(초)입니다. HADB의 JDBC 연결 풀에 다음 등록 정보를 추가하여 값을 설정합니다. <property name=loginTimeout value="x"\>기본값은 10초입니다.

  • MaxTransIdle - 클라이언트에 응답을 보내고 다음 요청을 받을 때까지 트랜잭션이 유휴 상태일 수 있는 최대 시간(밀리초)입니다. HADB의 JDBC 연결 풀에 다음 등록 정보를 추가하여 값을 변경할 수 있습니다. <property name=maxtransIdle value="x"\>기본값은 40초입니다.

    자세한 내용은 Sun Java System Application Server Performance Tuning Guide를 참조하십시오.

Application Server의 시간 초과 구성

  • Max-wait-time-millis - 예외가 발생하기 전까지 풀에서 연결을 위해 대기하는 시간입니다. 기본값은 6초입니다. 지속되는 데이터의 크기가 50KB를 초과하는 고부하 시스템의 경우 이 값을 변경하는 것이 좋습니다.

  • Cache-idle-timeout-in-seconds - 비활성화되기 전에 EJB가 캐시에서 유휴 상태일 수 있는 시간입니다. Entity Bean과 Stateful Session Bean에만 적용됩니다.

  • Removal-timeout-in-seconds - EJB가 비활성화 상태(백업 저장소에서 유휴 상태)로 유지되는 시간입니다. 기본값은 60분입니다. 이 값은 SFSB 페일오버에 필요한 값을 기초로 조정합니다.

HADB의 JDBC 연결 풀 설정 max-wait-time-in-millis에 주의하여 이 값을 모두 조정합니다. 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서JDBC 연결 풀 구성을 참조하십시오.

VM 가비지 모음(GC) 조정

가비지 모음이 4초 이상 일시 중지되면 HADB에 세션 상태를 지속하는 데 간헐적으로 문제가 발생할 수 있습니다. 이 문제를 방지하려면 VM 힙을 조정합니다. 데이터 지속 실패가 한 번도 허용되지 않거나 시스템이 완전히 로드되지 않은 경우에는 CMS 컬렉터나 처리량 컬렉터를 사용합니다. 

컬렉터는 다음을 추가하여 활성화할 수 있습니다. 

<jvm-options>-XX:+UseConcMarkSweepGC</jvm-options>

이 옵션은 처리량을 감소시킬 수 있습니다.