버퍼 매니저는 쿼리의 중간 결과 · 임시 LOB · 임시 테이블을 메모리에 두고, 넘치면 디스크 버퍼 파일로 내리는 구성 요소다[1]. 설정은 WildFly 의 Teiid 서브시스템 속성 buffer-service-* 로 한다.
현재 설정을 보는 명령이다.
/opt/teiid/server/bin/jboss-cli.sh --connect
/subsystem=teiid:read-resource
기본값으로 전부 적은 것이다. 바꿀 것만 write-attribute 로 넣고 서버를 재시작한다.
/subsystem=teiid:write-attribute(name=buffer-service-use-disk,value=true)
/subsystem=teiid:write-attribute(name=buffer-service-encrypt-files,value=false)
/subsystem=teiid:write-attribute(name=buffer-service-processor-batch-size,value=256)
/subsystem=teiid:write-attribute(name=buffer-service-max-open-files,value=64)
/subsystem=teiid:write-attribute(name=buffer-service-max-file-size,value=2048)
/subsystem=teiid:write-attribute(name=buffer-service-max-processing-kb,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-reserve-kb,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-buffer-space,value=51200)
/subsystem=teiid:write-attribute(name=buffer-service-max-inline-lobs,value=true)
/subsystem=teiid:write-attribute(name=buffer-service-memory-buffer-space,value=-1)
/subsystem=teiid:write-attribute(name=buffer-service-max-storage-object-size,value=8388608)
/subsystem=teiid:write-attribute(name=buffer-service-memory-buffer-off-heap,value=false)
| 속성 | 기본값 | 뜻 |
|---|---|---|
max-reserve-kb |
-1 | 버퍼 매니저가 쓸 수 있는 최대 힙(KB). -1 이면 JVM 최대 힙에서 자동 계산 |
max-processing-kb |
-1 | 쿼리 하나가 처리 중에 쓸 수 있는 힙(KB). -1 이면 자동 |
max-buffer-space |
51200 | 디스크 버퍼 파일 전체 상한(MB). 내부 materialization · SQL/XML · 대량 행 처리가 많으면 늘린다 |
max-file-size |
2048 | 버퍼 파일 하나의 상한(MB). 중간 결과 · 임시 LOB · 임시 테이블마다 파일 묶음이 따로 생긴다 |
max-storage-object-size |
8388608 (8MB) | 버퍼에 두는 객체 하나(배치 페이지)의 최대 바이트 |
processor-batch-size |
256 | 처리 배치의 행 수 기준 |
memory-buffer-space |
-1 | 바이트 버퍼로 잡는 메모리(MB). -1 이면 자동 |
memory-buffer-off-heap |
false | true 면 바이트 버퍼를 힙 밖에 잡는다. GC 부담을 줄이지만 JVM 의 -XX:MaxDirectMemorySize 를 같이 올려야 한다 |
use-disk |
true | 디스크 스필 사용 |
encrypt-files |
false | 버퍼 파일 암호화 |
max-reserve-kb 가 -1 일 때의 자동 계산은 힙 크기에 따라 달라진다. 문서의 예시대로 8GB 힙이면 다음과 같다.
(((1024 - 300) * 0.4) + (7 * 1024 * 0.5)) = 4373.6 MB ≈ 4,478,566 KB
즉 첫 1GB 에서 300MB 를 뺀 것의 40% 와 나머지 힙의 50% 를 더한 값이 버퍼 매니저의 상한이다. 힙을 키우면 상한도 같이 늘고, 나머지 힙은 플랜 캐시 · 결과 캐시 · 커넥션이 쓴다.
Teiid 16.0.x Admin Guide — Memory Management. 2026-09-20 확인. https://teiid.github.io/teiid-documents/16.0.x/content/admin/Memory_Management.html (옛 docs.jboss.org/author/display/TEIID/Memory+Management 는 사라졌다) ↩︎