DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

Memory config

DBMS 2
Sybase 가이드
DBA를 위한 가이드
Memory config
작성자
admin
작성일
2021-02-19 13:52
조회
1010

Memory config

용어

buffer or buffer cache: 데이터베이스로 부터 읽거나 쓸 때 데이터가 압축되지 않은 상태로 메모리에 저장되는 공간을 buffer 혹은 buffer cache라고 하며 IQ Main Store를 위한 Main buffer cache와 IQ Temporary Store를 위한 Temporary buffer cache로 나뉘어 집니다.

page size : 데이터베이스 생성시에 IQ page size 라는 옵션에 의해 그 크기가 결정되며 그에 따라 압축율도 결정됩니다.

block : SYBASE IQ에서 디스크에서 메모리로 읽고 쓰는 I/O를 위한 최소 단위를 block 이라고 합니다.

block size : 일반적으로 (page size)/16이 block size 이며 CREATE DATABASE에 의해 결정됩니다.

active user : SYBASE IQ에 접속하여 질의를 수행하는 사용자를 말하며 일반적으로 active user 당 5MB ~ 10MB 정도의 추가 메모리를 사용합니다.


buffer cache
Main buffer cache
  • 데이터베이스가 기동할 때 초기화 되며 디폴트로는 8MB 입니다.
  • 서버 옵션 중에 Main_Cache_Memory_MB 값의 변경에 의해 크기를 변경할 수 있으며 변경된 값은 다음에 서버가 재 기동할 때 적용됩니다.
  • 서버 기동 파라미터중에 -iqmc 값에 의해 Main_Cache_Memory_MB 값에 우선해서 적용할 수도 있습니다.
  • 서 일반적으로 총 사용 가능한 cache 중에 40%를 적용하지만 경우에 따라서는 변경해 줄 수도 있습니다.
Temporary buffer cache
  • 데이터베이스가 기동할 때 초기화 되며 디폴트로는 4MB 입니다.
  • 이 영역에서는 join, grouping, sorting과 같은 임시적인 작업이 진행됩니다.
  • 서버 옵션 중에 Temp_Cache_Memory_MB 값의 변경에 의해 크기를 변경할 수 있으며 변경된 값은 다음에 서버가 재 기동할 때 적용됩니다.
  • 서버 기동 파라미터중에 -iqtc 값에 의해 Temp_Cache_Memory_MB 값에 우선해서 적용할 수도 있습니다.
  • 일반적으로 총 사용 가능한 cache 중에 60%를 적용하지만 경우에 따라서는 변경해 줄 수도 있습니다.
memory config

SYBASE IQ가 설치되어 사용중인 H/W의 메인 메모리 중에서 SYBASE IQ의 Main buffer cache와 Temp buffer cache의 값을 최대한으로 사용하려면 메모리를 사용하는다른 구성 요소들을 이해해야 합니다.

memory config


memory config detail
Operating system and other applications
  • Unix : 플랫폼별로 다양하지만 일반적으로 60MB 정도를 사용합니다.
  • WinNT : 30MB + (4MB + total memory 0.25) 정도를 사 query tool, middleware, olap server등과 구성 요소들이 포함될 수 있는데 이것들의 메모리 사용량은 별도로 계산해야 합니다.
SYBASE IQ server
  • 플랫폼별로 다양하지만 일반적으로 30 MB 정도를 사용합니다.
SYBASE IQ memory overhead
  • active user : active user 당 5MB ~ 10MB정도를 사용합니다.
  • load 작업 : 서버 옵션중 Load_Memory_MB에 설정된 값을 사용합니다. 초기값은 0,즉 무제한으로 사용하므로 변경할 것을 권장합니다.
  • IQ Main/Temp Store로 file system 사용시 : 메인 메모리의 30%를 file buffer 공간으로 추가 사용합니다.
SYBASE IQ main/temp buffer cache
  • main buffer cache : 일반적으로 남아 있는 메모리의 40% 정도를 설정합니다.
  • temp buffer cache : 일반적으로 남아 있는 메모리의 60% 정도를 설정합니다.
memory config example
Unix server

Unix server


setting options
Load memory overhead
  • set option "public".Load_Memory_MB = #_of_MB
Main buffer cache
  • set option "public".Main_Cache_Memory_MB = #_of_MB
Temp buffer cache
  • set option "public".Temp_Cache_Memory_MB = #_of_MB
필요하면 buffer cache 크기가 크면 클수록 I/O를 적게 유발하여 좋은 성능을 유지하지만 실제 메모리를 초과하여 설능이 저하됩니다.
메모리를 재설정하고 나면 로드나 질의시 swaping 이나 paging 여부를 유심히 관찰해야 합니다.
참고
  • swaping : process 전체가 swap 영역으로 이동합니다.
  • paging : process가 사용하는 영역중 일부 페이지만 swap 으로 이동합니다.
viewing buffer cache size
sp_iqstatus

sp_iqstatus