11.4. 페이징 모드 구성
주소에 전달된 메시지가 구성된 크기를 초과하면 해당 주소는 페이징 모드로 전환됩니다.
페이징은 주소별로 개별적으로 수행됩니다. 주소에 대해 max-size-bytes
를 구성하면 일치하는 각 주소에 지정된 최대 크기가 있습니다. 그러나 일치하는 모든 주소의 전체 크기가 max-size-bytes
로 제한된다는 것은 아닙니다.
페이지
모드에서도 메모리 부족 오류로 인해 서버가 충돌할 수 있습니다. JBoss EAP 메시징은 디스크의 각 페이지 파일에 대한 참조를 유지합니다. 수백만 개의 페이지 파일이 있는 경우 JBoss EAP 메시징은 메모리 고갈에 직면할 수 있습니다. 이 위험을 최소화하려면 page-size-bytes
속성을 적절한 값으로 설정하는 것이 중요합니다. JBoss EAP 메시징 서버가 대상 수에 max-size-bytes
의 2배를 초과하도록 메모리를 구성해야 합니다. 그러지 않으면 메모리 부족 오류가 발생할 수 있습니다.
다음 관리 CLI 명령을 사용하여 주소의 현재최대 크기(max-size-bytes
)를 읽을 수 있습니다.
/subsystem=messaging-activemq/server=default/address-setting=ADDRESS_SETTING:read-attribute(name=max-size-bytes)
다음 관리 CLI 명령을 사용하여 주소의최대 크기(max-size-bytes
)를 구성할 수 있습니다.
/subsystem=messaging-activemq/server=default/address-setting=ADDRESS_SETTING:write-attribute(name=max-size-bytes,value=MAX_SIZE)
address 설정의 다른 페이징 관련 속성에 대한 값을 읽거나 쓸 때 유사한 구문을 사용합니다. 아래 테이블에는 설명 및 기본값과 함께 각 속성이 나열되어 있습니다.
다음 표에서는 주소 설정에 대한 매개변수를 설명합니다.
표 11.1. 주소 설정에 대한 페이징 구성
요소 | 설명 |
---|---|
address-full-policy | 이 속성의 값은 페이징 결정에 사용됩니다. 유효한 값은 아래에 나열되어 있습니다.
기본값은 |
max-size-bytes |
이는 페이징 모드로 들어가기 전에 주소가 가질 수 있는 최대 메모리 크기를 지정하는 데 사용됩니다. 기본값은 |
page-max-cache-size |
시스템은 페이지 파일을 메모리의 |
page-size-bytes |
이는 페이징 시스템에서 사용되는 각 페이지 파일의 크기를 지정하는 데 사용됩니다. 기본값은 |
기본적으로 모든 주소는 주소가 max-size-bytes
에 도달한 후 메시지를 페이지하도록 구성됩니다. 최대 크기에 도달했을 때 메시지를 페이징하지 않으려면 메시지를 삭제하거나 클라이언트 측에 예외가 있는 메시지를 삭제하거나 address -full-policy를
구성할 수 있습니다.
DROP
,FAIL
, BLOCK
각각으로 설정하여 추가 메시지를 전송하지 못하도록 주소를
대상이 메시지를 페이지하기 시작한 후
에서 address-full-policy
를 PAGEBLOCK
으로 변경하면 소비자가 더 이상 페이지화된 메시지를 사용할 수 없습니다.
여러 대기열이 있는 주소
메시지가 여러 대기열이 바인딩된 주소로 라우팅되면 메모리에 있는 단일 메시지 사본만 있습니다. 각 큐는 이 원래 메시지 복사본에 대한 참조만 처리하므로 원래 메시지를 참조하는 모든 큐가 메시지를 전달한 경우에만 메모리가 확보됩니다.
단일 지연 큐/서브스크립션을 사용하면 모든 큐에 페이징 시스템의 추가 스토리지를 통해 메시지가 전송되므로 전체 주소의 입력/출력 성능이 저하될 수 있습니다.