6장. 데이터 소스 및 리소스 어댑터 튜닝

연결 풀은 JBoss EAP가 데이터 소스를 사용하는 환경의 성능을 최적화하는 데 사용하는 주요 도구입니다(예: 관계형 데이터베이스 또는 리소스 어댑터).

데이터 소스 및 리소스 어댑터 연결에 대한 리소스 할당 및 처리는 시간과 시스템 리소스 측면에서 매우 비용이 많이 듭니다. 연결 풀링은 애플리케이션에서 사용할 수 있는 연결의 '풀'을 만들어 연결 비용을 줄입니다.

최적의 성능을 위해 연결 풀을 구성하기 전에 부하에서 데이터 소스 풀 통계 또는 리소스 어댑터 통계를 모니터링하여 환경에 적합한 설정을 결정해야 합니다.

6.1. 풀 통계 모니터링

6.1.1. 데이터 소스 통계

데이터 소스에 대한 통계 수집이 활성화되면 데이터 소스에 대한 런타임 통계를 볼 수 있습니다.

6.1.1.1. 데이터 소스 통계 활성화

기본적으로 데이터 소스 통계는 활성화되지 않습니다. 관리 CLI 또는 관리 콘솔을 사용하여 데이터 소스 통계 컬렉션을 활성화할 수 있습니다.

관리 CLI를 사용하여 데이터 소스 통계 활성화

다음 관리 CLI 명령을 사용하면 ExampleDS 데이터 소스에 대한 통계를 수집할 수 있습니다.

참고

관리형 도메인에서 이 명령 앞에 /profile=PROFILE_NAME 이 있습니다.

/subsystem=datasources/data-source=ExampleDS:write-attribute(name=statistics-enabled,value=true)

변경 사항을 적용하려면 서버를 다시 로드합니다.

관리 콘솔을 사용하여 데이터 소스 통계 활성화

관리 콘솔을 사용하여 데이터 소스에 대한 통계 컬렉션을 활성화하려면 다음 단계를 사용합니다.

  1. 구성하위 시스템데이터 소스 및 드라이버데이터 소스로 이동합니다.
  2. 데이터 소스를 선택하고 View(보기 )를 클릭합니다.
  3. Attributes (특성) 탭에서 Edit (편집)를 클릭합니다.
  4. Statistics Enabled(통계 활성화됨) 필드를 ON (켜짐)으로 설정하고 Save(저장 )를 클릭합니다. 변경 사항을 적용하려면 변경 사항을 다시 로드해야 함을 나타내는 팝업이 표시됩니다.
  5. 서버를 다시 로드합니다.

    • 독립 실행형 서버의 경우 팝업에서 Reload (다시 로드) 링크를 클릭하여 서버를 다시 로드합니다.
    • 관리형 도메인의 경우 팝업에서 Topology (토폴로지) 링크를 클릭합니다. Topology(토폴로지 ) 탭에서 적절한 서버를 선택하고 Reload (다시 로드) 드롭 다운 옵션을 선택하여 서버를 다시 로드합니다.

6.1.1.2. 데이터 소스 통계 보기

관리 CLI 또는 관리 콘솔을 사용하여 데이터 소스에 대한 런타임 통계를 볼 수 있습니다.

관리 CLI를 사용하여 데이터 소스 통계 보기

다음 관리 CLI 명령은 ExampleDS 데이터 소스에 대한 코어 통계를 검색합니다.

참고

관리형 도메인에서 이러한 명령 앞에 /host=HOST_NAME/server=SERVER_NAME 이 있습니다.

/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "ActiveCount" => 1,
        "AvailableCount" => 20,
        "AverageBlockingTime" => 0L,
        "AverageCreationTime" => 122L,
        "AverageGetTime" => 128L,
        "AveragePoolTime" => 0L,
        "AverageUsageTime" => 0L,
        "BlockingFailureCount" => 0,
        "CreatedCount" => 1,
        "DestroyedCount" => 0,
        "IdleCount" => 1,
        ...
}

다음 관리 CLI 명령은 ExampleDS 데이터 소스에 대한 JDBC 통계를 검색합니다.

/subsystem=datasources/data-source=ExampleDS/statistics=jdbc:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "PreparedStatementCacheAccessCount" => 0L,
        "PreparedStatementCacheAddCount" => 0L,
        "PreparedStatementCacheCurrentSize" => 0,
        "PreparedStatementCacheDeleteCount" => 0L,
        "PreparedStatementCacheHitCount" => 0L,
        "PreparedStatementCacheMissCount" => 0L,
        "statistics-enabled" => true
    }
}
참고

통계는 런타임 정보이므로 include-runtime=true 인수를 지정해야 합니다.

사용 가능한 모든 통계에 대한 자세한 목록은 데이터 소스 통계를 참조하십시오.

관리 콘솔을 사용하여 데이터 소스 통계 보기

관리 콘솔에서 데이터 소스 통계를 보려면 Runtime (런타임) 탭에서 Datasources (데이터 소스) 하위 시스템으로 이동하여 데이터 소스를 선택하고 View(보기 )를 클릭합니다.

사용 가능한 모든 통계에 대한 자세한 목록은 데이터 소스 통계를 참조하십시오.

6.1.2. 리소스 어댑터 통계

배포된 리소스 어댑터의 핵심 런타임 통계를 볼 수 있습니다. 사용 가능한 모든 통계에 대한 자세한 목록은 Resource Adapter Statistics 부록 을 참조하십시오.

리소스 어댑터 통계 활성화

기본적으로 리소스 어댑터 통계는 활성화되지 않습니다. 다음 관리 CLI 명령은 JNDI에 java:/eis/AcmeConnectionFactory 로 바인딩된 연결 팩토리가 있는 단순한 리소스 어댑터 myRA.rar 에 대한 통계 컬렉션을 활성화합니다.

참고

관리형 도메인에서 /host=HOST_NAME /server=SERVER_NAME/ 을 사용하여 명령 앞에 추가합니다.

/deployment=myRA.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/AcmeConnectionFactory:write-attribute(name=statistics-enabled,value=true)
리소스 어댑터 통계 보기

리소스 어댑터 통계는 관리 CLI에서 검색할 수 있습니다. 다음 관리 CLI 명령은 JNDI에 java:/eis/AcmeConnectionFactory 로 바인딩된 연결 팩토리가 있는 리소스 어댑터 myRA.rar 에 대한 통계를 반환합니다.

참고

관리형 도메인에서 /host=HOST_NAME /server=SERVER_NAME/ 을 사용하여 명령 앞에 추가합니다.

deployment=myRA.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/AcmeConnectionFactory:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "ActiveCount" => "1",
        "AvailableCount" => "20",
        "AverageBlockingTime" => "0",
        "AverageCreationTime" => "0",
        "CreatedCount" => "1",
        "DestroyedCount" => "0",
        "InUseCount" => "0",
        "MaxCreationTime" => "0",
        "MaxUsedCount" => "1",
        "MaxWaitCount" => "0",
        "MaxWaitTime" => "0",
        "TimedOut" => "0",
        "TotalBlockingTime" => "0",
        "TotalCreationTime" => "0"
    }
}
참고

통계는 런타임 정보이므로 include-runtime=true 인수를 지정해야 합니다.