5장. Jakarta Enterprise Cryostats 하위 시스템 튜닝
JBoss EAP는 Jakarta Enterprise Cryostat를 캐시하여 초기화 시간을 절약할 수 있습니다. 이 작업은 polkit 풀을 사용하여 수행됩니다.
JBoss EAP에서 조정할 수 있는 두 개의 다른 GPO 풀, 즉 빈 인스턴스 풀 및ans 스레드 풀이 있습니다.
적절한 Cryostat 풀 크기는 환경과 애플리케이션에 따라 다릅니다. 다양한 oscap 풀 크기를 실험하고 예상되는 실제 조건을 에뮬레이션하는 개발 환경에서 과부하 테스트를 수행하는 것이 좋습니다.
5.1. Cryostat 인스턴스 풀 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 인스턴스 풀은 SLSB(Stateless Session Cryostat) 및 MDB(Message Driven Cryostats)에 사용됩니다. 기본적으로 SLSB는 인스턴스 풀 default-slsb-instance-pool 을 사용하고, Cryostats는 default-mdb-instance-pool 인스턴스 풀을 사용합니다.
빈 인스턴스 풀의 크기는 한 번에 생성할 수 있는 특정 엔터프라이즈 빈의 인스턴스 수를 제한합니다. 특정 엔터프라이즈 빈의 풀이 가득 차면 클라이언트는 차단하여 인스턴스를 사용할 수 있을 때까지 기다립니다. 클라이언트에서 풀의 시간 제한 특성에 설정된 시간 내에 인스턴스를 가져오지 않으면 예외가 발생합니다.
빈 인스턴스 풀의 크기는 derive-size 또는 max-pool-size 를 사용하여 구성됩니다. derive-size 특성을 사용하면 다음 값 중 하나를 사용하여 풀 크기를 구성할 수 있습니다.
-
from-worker-pools에서는 최대 풀 크기가 시스템에 구성된 모든 작업자 풀에 대한 총 스레드의 크기에서 파생됨을 나타냅니다. -
from-cpu-count는 시스템에서 사용 가능한 총 프로세서 수에서 최대 풀 크기가 파생됨을 나타냅니다. 이는 반드시 1:1 매핑이 아니며 다른 요인에 의해 보강될 수 있습니다.
derive-size 가 정의되지 않은 경우 scaling 인스턴스 풀의 크기에 max-pool- size 값이 사용됩니다.
derive-size 속성은 max-pool-size 에 지정된 모든 값을 재정의합니다. max-pool-size 값을 적용하려면 derive-size 가 정의되지 않아야 합니다.
특정 인스턴스 풀을 사용하도록 엔터프라이즈 빈을 구성할 수 있습니다. 이를 통해 각 엔터프라이즈 빈 유형에서 사용 가능한 인스턴스를 보다 세밀하게 제어할 수 있습니다.
5.1.1. Quarkus 인스턴스 풀 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 관리 CLI를 사용하여 새 빈 인스턴스 풀을 생성하는 방법을 보여줍니다. Configuration 탭에서 Jakarta Enterprise Cryostats 하위 시스템으로 이동한 다음 Cryostat Pool 탭을 선택하여 관리 콘솔을 사용하여 Quarkus 인스턴스 풀을 구성할 수도 있습니다.
새 인스턴스 풀을 생성하려면 다음 명령 중 하나를 사용합니다.
파생된 최대 풀 크기를 사용하여 sum 인스턴스 풀을 생성하려면 다음을 수행합니다.
/subsystem=ejb3/strict-max-bean-instance-pool=POOL_NAME:add(derive-size=DERIVE_OPTION,timeout-unit=TIMEOUT_UNIT,timeout=TIMEOUT_VALUE)
/subsystem=ejb3/strict-max-bean-instance-pool=POOL_NAME:add(derive-size=DERIVE_OPTION,timeout-unit=TIMEOUT_UNIT,timeout=TIMEOUT_VALUE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는 CPU 수에서 파생된 최대 크기와 2분인
my_derived_pool이라는 빈 인스턴스 풀을 생성합니다./subsystem=ejb3/strict-max-bean-instance-pool=my_derived_pool:add(derive-size=from-cpu-count,timeout-unit=MINUTES,timeout=2)
/subsystem=ejb3/strict-max-bean-instance-pool=my_derived_pool:add(derive-size=from-cpu-count,timeout-unit=MINUTES,timeout=2)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명시적 최대 풀 크기를 사용하여 sum 인스턴스 풀을 생성하려면 다음을 수행합니다.
/subsystem=ejb3/strict-max-bean-instance-pool=POOL_NAME:add(max-pool-size=POOL_SIZE,timeout-unit=TIMEOUT_UNIT,timeout=TIMEOUT_VALUE)
/subsystem=ejb3/strict-max-bean-instance-pool=POOL_NAME:add(max-pool-size=POOL_SIZE,timeout-unit=TIMEOUT_UNIT,timeout=TIMEOUT_VALUE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는 최대 30개의 인스턴스와 시간 제한으로
my_pool이라는 빈 인스턴스 풀을 생성합니다./subsystem=ejb3/strict-max-bean-instance-pool=my_pool:add(max-pool-size=30,timeout-unit=SECONDS,timeout=30)
/subsystem=ejb3/strict-max-bean-instance-pool=my_pool:add(max-pool-size=30,timeout-unit=SECONDS,timeout=30)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. Quarkus에서 사용해야 하는 인스턴스 풀 지정 링크 복사링크가 클립보드에 복사되었습니다!
@org.jboss. Cryostat3.annotation.Pool 주석을 사용하거나 Cryostat의 배포 설명자를 수정하여 특정 measure가 사용할 특정 인스턴스 풀을 설정할 수 있습니다.
jboss- Cryostat3. xml
5.1.3. 기본 8080 인스턴스 풀 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본 Cryostat 인스턴스 풀을 비활성화할 수 있으므로 기본적으로 인스턴스 풀을 사용하지 않는 엔터프라이즈 8080이 생성됩니다. 대신 스레드가 엔터프라이즈 콩에서 메서드를 호출해야 하는 경우 새 엔터프라이즈 빈 인스턴스가 생성됩니다. 이 기능은 생성된 엔터프라이즈 빈 인스턴스 수에 제한이 없는 경우 유용할 수 있습니다.
기본 빈 인스턴스 풀을 비활성화하려면 다음 관리 CLI 명령을 사용합니다.
/subsystem=ejb3:undefine-attribute(name=default-slsb-instance-pool)
/subsystem=ejb3:undefine-attribute(name=default-slsb-instance-pool)
If a bean is configured to use a particular bean instance pool, disabling the default instance pool does not affect the pool that the bean uses.
If a bean is configured to use a particular bean instance pool, disabling the default instance pool does not affect the pool that the bean uses.