FAQ
알티베이스 DB 사이징 하는 방법 | |||||
분류 | 운영/관리 | 등록일 | 2013-07-09 | 조회수 | 3621 |
omegaman 2005-09-01 209 알티베이스 DB 사이징 하는 방법 +++++++++++++++++++++++++++++++++++++++ 요약 ++++ 메모리 테이블 사용시 table schema 와 예상 record count로 altibase가 필요로 하는 메모리용량을 산정하는 방법에 대해서 설명한다. 계산시 유의점 +++++++ 알티베이스 레코드 사이즈 계산은 레코드 칼럼의 내부적인 정렬을 위한 오프셋 (offset)을 추가해야 하기때문에 단순히 각 칼럼의 데이타타입별 크기의 합으로 계산해서는 안됩니다. 보다 정확한 계산값을 산출하기 위해서는 알티베이스에 직접 테이블을 생성한후에 튜 플사이즈를 얻은후에 여기에 인덱스크기를 더해야 합니다. 계산하는 법 +++++++ 1. 알티베이스에 해당 table schema를 직접 생성 2. size.sh 의 LIST 변수를 수정 ( 계산을 원하는 table 명을 추가한다 ) LIST="cnhpp_subs_info cnhpp_called_info" 3. [omegaman@e450:/home2/omegaman] sh size.sh iSQL> 2 3 TABLE_NAME REC_SIZE --------------------------------------------------------- CNHPP_SUBS_INFO 48 <--- record size 1 row selected. iSQL> iSQL> 2 3 TABLE_NAME REC_SIZE --------------------------------------------------------- CNHPP_CALLED_INFO 72 <---- record size 1 row selected. iSQL> [omegaman@e450:/home2/omegaman 4 위에서 얻은 레코드 size 에는 레코드별 인덱스크기가 포함되지 않은 값입니다. altibase는 인덱스당 16byte를 필요로 합니다. record별 메모리증가크기 = record_size + 16 * 인덱스갯수 (PK 포함) ex ) cnhpp_called_info의 레코드별 메모리증가크기 = 72 + 16 * 3 위와 같은 단계로 계산하실 수 있습니다. 위의 계산은 단순히 레코드증가에 따른 크기만을 계산한 것으로 실제운영상황을 고려하려면 세션별 메모리사용량 , 시스템 여유분 등도 같이 계산에 추가해야 합니다. 세션별 메모리사용량 ( connection 당 추가로 필요로 하는 메모리) 는 1 connection 당 5M 정도이고 시스템여유분은 보정치로 1.5정도를 곱해서 계산합니다. ( ( 48 + 16 ) * n 레코드수 + ( 72 + 16 * 3 ) * n 레코드수 + 5M * connection 수 ) * 1.5 (보정치) | | ( CNHPP_SUBS_INFO ) ( CNHPP_CALLED_INFO ) 와 같은 식이 됩니다. |