설정
Machbase의 서버 설정 및 튜닝 가이드입니다. 워크로드와 하드웨어에 맞게 서버 설정을 최적화하는 방법을 알아봅니다.
설정 파일
위치
$MACHBASE_HOME/conf/machbase.conf
설정 편집
# 편집 전 서버 종료
machadmin -s
# 설정 파일 편집
vi $MACHBASE_HOME/conf/machbase.conf
# 새 설정으로 서버 시작
machadmin -u
주요 설정 파라미터
네트워크 설정
# 서버 포트
PORT_NO = 5656
# 바인드 IP 주소 (모든 인터페이스는 0.0.0.0)
BIND_IP_ADDRESS = 0.0.0.0
# 최대 연결 수
MAX_CONNECTION = 100
메모리 설정
# 공유 버퍼 풀 (권장: 사용 가능한 RAM의 50-70%)
BUFFER_POOL_SIZE = 2G
# Volatile 테이블 메모리
VOLATILE_TABLESPACE_SIZE = 1G
# 쿼리당 메모리 제한
MAX_QPX_MEM = 512M
# 로그 버퍼 크기
LOG_BUFFER_SIZE = 64M
성능 설정
# 체크포인트 간격 (초)
CHECKPOINT_INTERVAL_SEC = 600
# 쿼리 타임아웃 (초)
QUERY_TIMEOUT = 60
# 최대 병렬 쿼리 수
MAX_PARALLEL_QUERY = 4
스토리지 설정
# 데이터베이스 디렉토리
DB_DIR = $MACHBASE_HOME/dbs
# 로그 디렉토리
LOG_DIR = $MACHBASE_HOME/dbs
# 트레이스 로그 디렉토리
TRC_LOG_DIR = $MACHBASE_HOME/trc
백업 설정
# 백업 압축
BACKUP_COMPRESSION = 1
# 백업 스레드 수
BACKUP_THREAD_COUNT = 4
워크로드별 튜닝
쓰기 집약적 워크로드
# 버퍼 증가
BUFFER_POOL_SIZE = 4G
LOG_BUFFER_SIZE = 128M
# 체크포인트 빈도 감소
CHECKPOINT_INTERVAL_SEC = 900
# 연결 수 증가
MAX_CONNECTION = 200
읽기 집약적 워크로드
# 버퍼 풀 증가
BUFFER_POOL_SIZE = 8G
# 쿼리 메모리 증가
MAX_QPX_MEM = 1G
# 병렬 쿼리 활성화
MAX_PARALLEL_QUERY = 8
혼합 워크로드
# 균형 잡힌 설정
BUFFER_POOL_SIZE = 4G
LOG_BUFFER_SIZE = 64M
MAX_QPX_MEM = 512M
CHECKPOINT_INTERVAL_SEC = 600
MAX_PARALLEL_QUERY = 4
설정 모니터링
시스템 테이블
-- 설정 확인
SELECT * FROM SYSTEM_.SYS_PROPERTIES_;
-- 메모리 사용량 확인
SHOW STORAGE;
로그 설정
# 트레이스 로그 활성화
TRC_LOG_LEVEL = 1
# 로그 파일 크기
TRC_LOG_FILE_SIZE = 10M
# 로그 파일 수
TRC_LOG_FILE_COUNT = 10
보안 설정
접근 제어
# 네트워크 접근 제한
BIND_IP_ADDRESS = 192.168.1.100
# 최대 연결 수 감소
MAX_CONNECTION = 50
SSL/TLS
# SSL 활성화
SSL_ENABLE = 1
SSL_CERT = /path/to/cert.pem
SSL_KEY = /path/to/key.pem
클러스터 설정
클러스터 배포의 경우 추가 설정이 필요합니다:
# 클러스터 모드
CLUSTER_ENABLE = 1
# 클러스터 ID
CLUSTER_ID = cluster01
# 코디네이터 주소
COORDINATOR_HOST = 192.168.1.10
COORDINATOR_PORT = 6656
전체 클러스터 설정은 클러스터 설치를 참조하세요.
설정 모범 사례
- 변경 전 설정 백업 - 원본 설정 저장
- 스테이징 환경에서 테스트 - 프로덕션 적용 전 검증
- 변경 후 모니터링 - 로그 및 성능 확인
- 변경 사항 문서화 - 변경 이력 유지
- 적절한 값 사용 - 하드웨어 및 워크로드에 맞춤
일반적인 설정 문제
메모리 부족
증상: 서버 크래시 또는 느린 성능
해결책:
# 메모리 사용량 감소
BUFFER_POOL_SIZE = 1G # 버퍼 풀 감소
MAX_QPX_MEM = 256M # 쿼리 메모리 감소
연결 수 초과
증상: “Max connections exceeded” 오류
해결책:
# 연결 제한 증가
MAX_CONNECTION = 200
느린 쿼리
증상: 쿼리 타임아웃
해결책:
# 쿼리 타임아웃 증가
QUERY_TIMEOUT = 120
# 쿼리 메모리 증가
MAX_QPX_MEM = 1G
# 병렬 쿼리 활성화
MAX_PARALLEL_QUERY = 8
전체 설정 참조
자세한 설정 문서는 다음을 참조하세요:
설정 템플릿
# machbase.conf - 프로덕션 설정 템플릿
# 네트워크
PORT_NO = 5656
BIND_IP_ADDRESS = 0.0.0.0
MAX_CONNECTION = 100
# 메모리 (사용 가능한 RAM에 따라 조정)
BUFFER_POOL_SIZE = 4G
VOLATILE_TABLESPACE_SIZE = 1G
MAX_QPX_MEM = 512M
LOG_BUFFER_SIZE = 64M
# 성능
CHECKPOINT_INTERVAL_SEC = 600
QUERY_TIMEOUT = 60
MAX_PARALLEL_QUERY = 4
# 스토리지
DB_DIR = $MACHBASE_HOME/dbs
LOG_DIR = $MACHBASE_HOME/dbs
TRC_LOG_DIR = $MACHBASE_HOME/trc
# 로깅
TRC_LOG_LEVEL = 1
TRC_LOG_FILE_SIZE = 10M
TRC_LOG_FILE_COUNT = 10
다음 단계
최근 업데이트