애플리케이션 프로파일 성능 고려사항

애플리케이션 프로파일링은 애플리케이션 런타임, 성능 및 확장성을 개선하는 어셈블리 구성 기법을 사용 가능하게 합니다. 수신 요청을 식별하고, 동시성과 기타 데이터 액세스 특성을 판별하는 액세스 목적을 식별하는 타스크와, 액세스 목적에 맵핑하는 프로파일을 구성할 수 있습니다.

애플리케이션 서버를 구성하는 기능은 개발 및 유지보수 비용을 줄이면서 성능, 효율성 및 확장성을 향상시킵니다. 애플리케이션 프로파일링 서비스는 서비스가 필요없는 경우에 서비스를 사용 불가능하게 하기 위한 선택란 외에는 튜닝 매개변수가 없습니다. 그러나 애플리케이션 프로파일 서비스에 대한 오버헤드는 작으며 사용 불가능하게 해서는 안됩니다. 그렇지 않으면 예측할 수 없는 결과가 발생할 수 있습니다.

액세스 목적으로 데이터 액세스 특성을 지정할 수 있습니다. WebSphere 런타임 환경이 이들 힌트를 사용하여 적당한 분리 레벨과 동시성을 설정하여 데이터에 대한 액세스를 최적화합니다. 액세스 목적 정책에 다양한 목적 힌트를 함께 그룹화할 수 있습니다.

제품에서는 주어진 Bean을 로드하기 위해 Bean 레벨 액세스 목적을 구성하도록 권장합니다. 애플리케이션 프로파일을 사용하면 원하는 경우에 엔티티 Bean에서 다중 액세스 목적 정책을 구성할 수 있습니다. 일부 호출자는 목적과 함께 Bean을 로드하여 데이터를 읽는 반면, 다른 호출자는 업데이트를 위해 Bean을 로드할 수 있습니다. 애플리케이션 서버를 구성하는 기능은 개발 및 유지보수 비용을 줄이면서 성능, 효율성 및 확장성을 향상시킬 수 있습니다.

액세스 목적은 사용되는 엔터프라이즈 Bean의 특정 유형을 바탕으로 최적 성능을 제공하기 위해 EJB 컨테이너가 구성될 수 있게 합니다. 모든 EJB 요청에 대해 적절한 액세스 목적 서비스를 제공하기 위해 컨테이너와 지속 관리자 같은 WebSphere 자원에 표시할 다양한 액세스 목적 힌트를 배치 시에 선언적으로 지정할 수 있습니다.

애플리케이션 프로파일링 서비스는 런타임 작동을 미세 조정하여 전체 엔티티 Bean 성능과 처리량을 개선합니다. 애플리케이션 프로파일링 서비스는 클라이언트가 읽기 또는 실제 업데이트를 위해 필요한지 여부와 상관없이 findByPrimaryKey 메소드로 액세스하는 Bean에서 업데이트 중 변경이 예상됨 같은 "최악의 경우" 선택사항에 의지하지 않고 EJB 최적화가 복수 사용자 액세스 패턴에 대해 사용자 정의될 수 있게 합니다.

애플리케이션 프로파일링은 컨테이너 관리 태스크 > 애플리케이션 프로파일 > 액세스 목적 정책 > 액세스 목적 대체의 계층 구조를 정의하는 기능을 제공합니다. 컨테이너 관리 타스크는 UOW를 식별하며 메소드 또는 메소드 세트와 연관됩니다. 태스크와 연관된 메소드가 호출될 때, 태스크 이름이 요청과 함께 전파됩니다. 예를 들어, UOW는 트랜잭션이나 활동 세션에 상응할 수 있는 애플리케이션 내의 고유한 경로를 의미합니다. 태스크의 이름은 Java EE 클라이언트나 서블릿 또는 엔터프라이즈 Bean의 메소드에 선언적으로 지정됩니다. 태스크 이름은 호출 그래프나 서브그래프의 시작점을 식별합니다. 즉, 태스크 이름이 모든 후속 IIOP 요청에서 그래프 다운스트림의 시작점에서부터 흐르므로, 구성된 태스크에 속하는 각 후속 요청을 그래프를 따라서 식별합니다. 가장 좋은 예로는 UOW가 시작할 때마다, 트랜잭션 또는 ActivitySession 해당 시작점에 태스크를 지정하십시오.

애플리케이션 프로파일 서비스는 전파된 태스크에 액세스 목적 정책과 연관시킵니다. Bean이 로드되고 데이터를 검색할 때, 데이터 검색에 사용되는 특성이 애플리케이션 프로파일에 의해 지시됩니다. 애플리케이션 프로파일이 특정 태스크를 위한 데이터에 액세스하는 데 사용될 액세스 목적 정책 및 대체를 구성합니다.

액세스 목적 정책은 특정 태스크에 대해 Bean이 로드되는 방법과 데이터가 트랜잭션 중에 액세스되는 방법을 판별합니다. 액세스 목적 정책은 액세스 목적 힌트의 이름 지정된 그룹입니다. 데이터베이스 및 자원 관리자의 특성에 따라서 힌트를 사용할 수 있습니다. 데이터 액세스 작업에 적용된 다양한 액세스 목적 힌트가 데이터 무결성을 좌우합니다. 일반 규칙은 데이터 무결성이 클수록 오버헤드가 크다는 것입니다. 더 큰 오버헤드는 더 낮은 처리량을 유발하고 복수 클라이언트의 동시 데이터 액세스에 대한 기회를 낮춥니다.

지정되는 경우, 액세스 목적 대체는 액세스 목적 정책에 대한 추가 구성을 제공합니다.

우수 사례

애플리케이션 프로파일링은 다음을 비롯한 다양한 여러 시나리오에서 효과적입니다.
  • 동일한 Bean이 서로 다른 데이터 액세스 패턴을 갖고 로드됩니다.

    동일한 Bean 또는 Bean 세트를 애플리케이션 사이에서 재사용할 수 있지만, 각 애플리케이션이 호출 그래프 안에서 Bean에 대해 상이한 요구사항을 갖습니다. 한 애플리케이션은 Bean이 업데이트를 위해 로드될 것을 요구하는 반면, 다른 애플리케이션은 읽기만을 위해 Bean이 로드되어야 합니다. 애플리케이션 프로파일링은 EJB 로드 요구사항 사이를 구별하기 위해 Bean에 대한 배치 시간 구성을 사용 가능하게 합니다.

  • 클라이언트가 다르면 데이터 액세스 요구사항도 다릅니다.

    동일한 Bean 또는 Bean 세트를 여러 유형의 클라이언트 요청에 사용할 수 있습니다. 이들 클라이언트가 호출 그래프 내의 Bean에 대한 상이한 요구사항을 가질 때, 애플리케이션 프로파일링을 사용하여 Bean 로드 특성을 클라이언트의 요구사항에 맞게 조정할 수 있습니다. 한 클라이언트는 Bean이 업데이트를 위해 로드될 것을 요구하는 반면, 다른 클라이언트는 읽기만을 위해 Bean이 로드되어야 합니다. 애플리케이션 프로파일링은 EJB 로드 요구사항 사이를 구별하기 위해 Bean에 대한 전개 시간 구성을 사용 가능하게 합니다.

모니터링 도구

Tivoli Performance Viewer, 데이터베이스 및 로그를 모니터링 도구로 사용할 수 있습니다.

Tivoli Performance Viewer를 사용하여 애플리케이션 프로파일링 구성의 Bean과 연관된 다양한 측정 규준을 모니터할 수 있습니다. 다음 절은 높은 수준에서 액세스 목적과 애플리케이션 프로파일링이 사용될 때 변경사항을 반영하는 Tivoli Performance Viewer 측정 규준을 설명합니다.
  • 콜렉션 범위:

    엔터프라이즈 Bean 그룹은 Bean 그룹 또는 특정 Bean에 대한 누적 값인 EJB 라이프사이클 정보를 포함합니다. 이 정보를 모니터하여 ActivitySession 범위 대 트랜잭션 범위 사용 간의 차이를 판별할 수 있습니다. 트랜잭션 범위의 경우, 컨테이너 트랜잭션이 정의되는 방법에 따라서 activate 및 passivate가 메소드 호출과 연관될 수 있습니다. 애플리케이션은 ActivitySession 범위를 사용하여 activate 및 passivate의 빈도를 줄일 수 있습니다. 자세한 정보는 ActivitySession 서비스 사용 주제를 참조하십시오.

  • 콜렉션 증분:

    엔터프라이즈 Bean 그룹은 Bean 그룹 또는 특정 Bean에 대한 누적 값인 EJB 라이프 사이클 정보를 포함합니다. 활성화 수를 모니터하여 특정 findByPrimaryKey 작업을 위해 활성화된 엔터프라이즈 Bean의 수를 감시할 수 있습니다. 예를 들어, 콜렉션 증분이 기본값인 25가 아니라 10으로 설정되면 활성화 수 값은 모든 결과 세트 반복기가 실행하기 전의 초기 findByPrimaryKey에 대해 10을 표시합니다. 활성화 수가 콜렉션 증분을 좀처럼 초과하지 않는 경우, 콜렉션 증분 설정 축소를 고려하십시오.

  • 자원 관리자 프리페치 증분:

    자원 관리자 프리페치 증분은 데이터베이스에 의존하기 위해 데이터베이스 엔진이 작용하는 힌트입니다. Tivoli Performance Viewer는 측정 규준이 자원 관리자 프리페치 증분 설정의 효과를 표시할 수 있게 하지 않습니다.

  • 미리 읽기 힌트:

    엔터프라이즈 Bean 그룹은 Bean 그룹 또는 특정 Bean에 대한 누적 값인 EJB 라이프 사이클 정보를 포함합니다. 활성화 수를 모니터하여 특정 요청을 위해 활성화된 엔터프라이즈 Bean의 수를 감시할 수 있습니다. 미리 읽기 연관이 사용되지 않는 경우, 활성화 수 값은 더 낮은 초기 값을 표시합니다. 미리 읽기 연관이 사용되는 경우, 활성화 수 값은 전체 호출 그래프에 대한 활성화 수를 표시합니다.

데이터베이스 도구는 경합 및 동시성 문제를 야기하는 상이한 Bean 로드 특성의 모니터링에 도움이 됩니다. 이러한 문제는 애플리케이션 프로파일링으로 해결하거나, 액세스 목적 정책의 잘못된 적용에 의해 악화될 수 있습니다.

데이터베이스 도구는 잠금, 교착 상태, 연결 열기와 같은 잠금 및 경합 특성 모니터링에 유용합니다. 예를 들어, 잠금의 경우에 DB2 Snapshot Monitor가 잠금 대기, 잠금 제한시간 및 잠금 확대에 대한 통계를 표시할 수 있습니다. 과다한 잠금 대기 및 제한시간이 발생 중이면, 애플리케이션 프로파일링이 더 많은 잠금의 문자열 레벨이 필요한 특정 클라이언트 태스크와, 잠금이 필요없는 기타 클라이언트 태스크를 정의할 수 있습니다. 또는 덜 제한적인 잠금을 갖는 다른 액세스 목적 정책을 적용할 수 있습니다. 이 구성 변경사항을 적용하면, 스냅샷 모니터는 더 적은 잠금 작동을 표시합니다. 잠금 및 경합을 모니터하는 방법에 대해서는 사용 중인 데이터베이스에 대한 정보를 참조하십시오.

롤백, 교착 상태 및 성능을 저하시키거나 애플리케이션의 실패 원인이 되는 기타 데이터 액세스 또는 트랜잭션 특성에 대한 정보를 위해 애플리케이션 서버 로그를 모니터할 수 있습니다.


주제 유형을 표시하는 아이콘 참조 주제



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