Skip to end of metadata
Go to start of metadata

개요


MEM_MAX_DB_SIZE에 대한 내용 확인 및 변경방법에 대해 알아 봅니다.

 

대상버전


  • Altibase 전체 버전

설명


  • 물리 메모리에 저장되는 메모리 테이블스페이스(메모리 테이블 또는 메모리 데이터)로 사용할 수 있는 최대 메모리 크기를 의미합니다.
  • 모든 메모리 테이블스페이스를 합한 전체 사용량에 대한 제약입니다.
  • 메모리 테이블스페이스 각각이 사용할 수 있는 최대 크기가 아닙니다.
  • 메모리 테이블에 생성한 인덱스 크기는 포함되지 않습니다.
  • 변경 트랜잭션 수행 시 발생하는 과거 데이터도 포함됩니다. 
    변경 트랜잭션이 수행될 경우 트랜잭션이 종료되기 전까지 과거 데이터를 유지하는데(MVCC기법), 메모리 테이블의 경우 메모리 테이블 내에 레코드의 복제본을 생성합니다. 
  • 메모리 테이블스페이스 생성 시 최대값을 지정하지 않으면 MEM_MAX_DB_SIZE 설정 값만큼 자동 확장됩니다.

고려사항


현재 값 보다 크게 설정하고자 할 때


MEM_MAX_DB_SIZE 를 현재 값보다 크게 설정하고자 할 때 고려해야 할 부분에 대해 설명합니다

 

최대 값


    • 물리 메모리의 약 60~70% 정도로 설정할 것을 권장합니다.
    • 메모리 데이터 뿐 아니라 변경 트랜잭션 수행 시 MVCC 기법에 의해 생성될 레코드 복제본 크기도 고려해야 합니다.
      예를 들어, 1G짜리 메모리 테이블에 변경 트랜잭션이 발생한 경우 트랜잭션이 완료된 시점에는 해당 테이블의 크기는 2G 가 될 수 있습니다.
    • 메모리는 알티베이스 서버 프로세스 뿐 아니라 OS 및 다른 프로세스에서도 사용해야 할 공유 자원이기 때문에 물리 메모리보다 작게 설정해야 합니다.
    • 물리 메모리보다 크게 MEM_MAX_DB_SIZE를 설정할 수는 있지만 물리 메모리를 초과하여 메모리가 사용될 경우 swap in/out 발생으로 성능 저하 및 시스템에 다양한 문제가 발생할 수 있습니다.

디스크 공간


    • 메모리 테이블스페이스는 백업 용도로 두 벌의 '메모리 체크포인트 이미지 파일'을 디스크에 저장합니다. 그래서 메모리 데이터 사용량보다 보다 두 배의 디스크 공간이 필요합니다.
    • MEM_MAX_DB_SIZE 를 크게 설정하면 디스크 사용량도 증가하므로 MEM_MAX_DB_SIZE 변경 전에 디스크 공간을 여유있게 확보해야 합니다. 
      예) MEM_MAX_DB_SIZE 가 60G 일 경우, 120G 의 디스크 공간이 필요. 

사용자 환경 설정 (Linux/Unix)


    • ulimit -a 로 수행하여 아래 설정들이 OS 에서 허용하는 최대 값으로 설정되어 있는 지 확인해야 합니다.
      max memory size / virtual memory

커널 파라미터(AIX, HP-UX)


    • AIX 경우 /etc/security/limits 파일 내용에서 data, rss, fsize등에 대해서 -1로 설정이 되어 있는지 확인합니다.
    • HP의 경우 kctune을 통해 maxdsiz_64bit 값이 충분히 크게 설정 되어 있는지 확인합니다.
    • Linux, SunOS 는 해당 없습니다.

현재 값 보다 작게 설정하고자 할 때


MEM_MAX_DB_SIZE 를 현재 값보다 작게 설정하고자 할 때 고려해야 할 부분에 대해 설명합니다.

 

    • MEM_MAX_DB_SIZE 는 무조건 작게 설정할 수 없습니다.
    • 증가한 '체크포인트 이미지 파일' 크기를 확인한 후 그보다 크게 설정해야 합니다.
      아래 문장으로 그 크기를 확인할 수 있습니다.

      TOTAL 이 MAX 보다 작다면 TOTAL 보다는 크면서 기존 값보다는 작게 MEM_MAX_DB_SIZE 를 설정합니다.

      IE 사용자에게

      Icon

      IE 에서 SQL 문장을 복사하면 빈 줄이 생길 수 있으니 필요 시 첨부 파일을 사용하시기 바랍니다. total_memory_tablespaces_usage.txt

       TOTAL 은...

      TOTAL(M) 은 메모리 테이블스페이스로 할당 된 전체 페이지 크기를 의미합니다.

      이 값에는 메모리 테이블스페이스의 free page 도 포함합니다.
      free page 는 물리 메모리에 로딩되지 않을 수도 있습니다. 그래서 이 값을 메모리 테이블스페이스의 물리 메모리 사용량으로 볼 수는 없습니다.

      이 값은 체크포인트 이미지 파일의 크기를 의미하기도 합니다.

      TOTAL 은 DROP TABESPACE 한 경우를 제외하고는 줄어들지 않습니다. 알티베이스 서버를 재구동 해도 줄어들지 않습니다.

       

      체크포인트 이미지 파일과 비교

DB재구동


    • MEM_MAX_DB_SIZE 의 값을 변경하기 위해서는 Altibase를 재구동해야만 합니다.
    • 운용중 property를 동적으로 변경 할 수 없습니다. (서비스 중단이 필요합니다)



절차



변경절차


    1. 알티베이스 서버 중지

    2. altibase.properties 파일 변경

      알티베이스 서버 프로퍼티 파일($ALTIBASE_HOME/conf/altibase.properties) 에서 MEM_MAX_DB_SIZE 를 변경 후 저장합니다.

    3. 알티베이스 서버 구동

 

발생 가능 에러 메세지


[FAILURE] The size of the DB file(SYS_TBS_MEM_DATA-숫자-숫자) exceeds the size specified in the MEM_MAX_DB_SIZE property.

    • [원인]

      MEM_MAX_DB_SIZE를 증가한 '체크포인트 이미지 파일' 크기보다 작게 설정할 경우, 구동시(startup)  에러가 발생할 수 있습니다

    • [해결방법]

      MEM_MAX_DB_SIZE를 증가한 '체크포인트 이미지 파일' 크기보다 크게 설정해야 합니다.

       Error 전문

       

       

 

 

확인절차


    • 아래 쿼리로 확인 가능합니다.  

참고


 

  • No labels