기타

서비스 오픈을 위한 CUBRID 구성 가이드

by 손승일 posted Nov 28, 2009

서비스 오픈을 위한 CUBRID 구성 가이드

소개: 실 서비스 오픈을 위해 필요한 볼륨 구성, 메모리 관련 설정, 동시 사용자 수에 따른 설정 등을 위한 방법을 소개한다.

적용 대상: CUBRID2008R2.x

 

DB 생성 및 볼륨 구성

CUBRID를 설치 후 createdb 유틸리티를 통해 별도의 옵션을 주지 않고 DB를 생성하면 5000page(20M) 크기의 DB가 생성된다. 테스트 및 개발을 진행함에 있어서는 문제가 없지만 실 서비스에 적용하기에는 적절하지 않다.

실 서비스에서 발생하는 데이터양에 따라 적절하게 addvoldb 유틸리티를 사용하여 볼륨을 추가 구성해야 한다. 가능하면 각 볼륨은 물리적으로 별도의 디스크에 생성하는 것이 I/O 분산을 통한 성능 향상에 도움이 된다.

아래는 generic 볼륨 400M, active log 200M, data 볼륨 10G, index 볼륨 4G, temp 볼륨 2G로 구성하는 예제이다. I/O 분산을 위해 generic, data, index를 하나의 파티션에, active log, temp를 동일한 파티션에 생성하도록 하였다.

cubrid createdb -F /db/boarddb/data -s 8192 -p 50000 –L /db/boarddb/log -l 25000 boarddb

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 1250000

cubrid addvoldb -S -p index -F /db/boarddb/data boarddb 500000

cubrid addvoldb -S -p temp -F /db/boarddb/log boarddb 250000

위 예는 CUBRID 64bit 제품 기준이며, 32bit 제품의 경우에는 자원 사용의 제약에 따라 2G(250000 page) 단위로 나누어 생성하여야 한다.

cubrid createdb -F /db/boarddb/data -s 8192 -p 50000 –L /db/boarddb/log -l 25000 boarddb

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p data -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p index -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p index -F /db/boarddb/data boarddb 250000

cubrid addvoldb -S -p temp -F /db/boarddb/log boarddb 250000

 

설정 변경

시스템 사양, 동시 사용자 수 등에 따라서 변경하여야 할 설정들이 있다. 아래 설명되는 파라미터에 대한 자세한 사항은 매뉴얼 > 성능 튜닝 > 데이터베이스 서버 설정, 브로커 설정 부분을 참고하기 바란다.

동시 사용자 관련 설정

동시 사용자 관련 하여 cubrid_broker.conf MAX_NUM_APPL_SERVER(쵀대 CAS 프로세스 개수) cubrid.conf max_clients을 변경하여야 한다.

이 설정에 영향을 미치는 사항은 WAS connection pool MAX 값과 시스템 메모리 사양이다.

먼저 WAS connection pool MAX 값과 cubrid_broker.conf MAX_NUM_APPL_SERVER 값을 일치 시킨다. Tomcat을 예로 들자면 maxActive 설정과 일치하여야 한다는 것이다. 이때 고려하여야 할 부분이 시스템 메모리다.

하나의 CAS 프로세스가 사용하는 최대 메모리양은 32bit 버전의 경우 40M, 64bit 버전의 경우 80M이다. 예를 들어 MAX_NUM_APPL_SERVER 100으로 설정하였다면 64bit 기준으로 최대 8G의 메모리가 소요될 수 있다는 것이다.

$CUBRID/conf/cubrid_broker.conf의 설정 중 아래 사항을 수정한다.

[%query_editor]

MAX_NUM_APPL_SERVER     =20

 

[%BROKER1]

MAX_NUM_APPL_SERVER     =80

다음은 MAX_NUM_APPL_SERVER 값에 따라 max_clients를 변경한다.

max_clients는 각 브로커의 MAX_NUM_APPL_SERVER 설정 값을 모두 합한 값에 10을 더하여 설정한다.

$CUBRID/conf/cubrid.conf 의 아래 파라미터 값을 수정한다.

max_clients=110

메모리 및 디스크 관련 설정

메모리 및 디스크 관련 하여 $CUBRID/conf/cubrid.conf의 아래 파라미터 값을 수정 및 추가한다.

data_buffer_pages=250000

sort_buffer_pages=64

temp_file_memory_size_in_pages=20 #추가

temp_file_max_size_in_pages=250000 #추가

data_buffer_pages 파라미터 설정은 필요한 메모리 크기가 시스템 메모리의 2/3 이내가 되도록 설정할 것은 권장한다. 위 예제와 같이 250000로 설정하면 250000 * 8K(createdb -s로 설정한 값) = 2G 메모리를 사용하게 된다. 브로커가 사용하는 메모리를 고려하여 적절히 조정해야 한다.

temp_file_max_size_in_pages는 임시 볼륨을 디스크에 저장하기 위하여 최대로 할당할 수 있는 페이지 개수를 설정하는 파라미터이다. 종종 잘못된 질의를 실행하여 임시 볼륨이 무한정 생성하게 되어 디스크가 풀이 되고 서비스 장애로 이어지는 경우가 있는데 이것을 방지하기 위해 설정한다. 위 예제는 2G까지 사용되도록 설정한 것이다.

 

 

TAG •

Articles

1 2 3 4 5 6 7 8 9