2011년 11월 30일 수요일

DB2 RAID 테이블스페이스 생성

https://jazz.net/library/article/557

Using a RAID Tablespace

If you are using RAID for your tablespace storage, you should not be letting repotools create the tablespace, as  there are options that you can specify to let DB2 know that it is running on RAID and that it can optimize itself for having a explicitly fast tablespace.  

For a new installation, you should instead create a LARGE tablespace called "CONTENTTS" by following the optimizing DB2 For RAID guide.  Make sure to explicitly set DB2_PARALLEL_IO (and EXTENTSIZE).

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.dbobj.doc%2Fdoc%2Ft0004987.html

데이터가 RAID 디바이스에 있을 때 테이블 스페이스 성능 최적화
데이터가 RAID(Redundant Array of Independent Disks) 디바이스에 저장될 때 성능을 최적화하려면 이 지침을 따르십시오.
  1. RAID 디바이스 세트에 테이블 스페이스를 작성할 때 별도의 디바이스에 주어진 테이블 스페이스(SMS 또는 DMS)에 대한 컨테이너를 작성하십시오.
    15개의 146GB 디스크가 각 배열에 5개 디스크를 갖는 세 개의 RAID-5 배열로서 구성된 예를 고려하십시오. 포맷팅 후 각 디스크는 대략 136GB의 데이터를 보유할 수 있습니다. 그러므로 각 배열은 대략 544GB(4 활성 디스크 x 136GB)를 저장할 수 있습니다. 300GB의 스토리지가 필요한 테이블 스페이스가 있는 경우 세 개의 컨테이너를 작성하고 각 컨테이너를 별도 디바이스에 넣으십시오. 각 컨테이너는 디바이스에서 100GB(300GB/3)를 사용하며, 각 디바이스에 추가 테이블 스페이스를 위한 444GB(544GB - 100GB)가 남아 있습니다.
  2. 테이블 스페이스에 대해 적절한 Extent 크기를 선택하십시오. 테이블 스페이스의 Extent 크기는 데이터베이스 관리 프로그램이 다음 컨테이너에 쓰기 전에 한 컨테이너에 기록하는 데이터의 양입니다. 이상적으로는 Extent 크기는 디스크의 기초 세그먼트 크기의 배수여야 하며, 세그먼트 크기는 디스크 제어기가 다음 실제 디스크에 쓰기 전에 한 실제 디스크에 기록하는 데이터량입니다. 세그먼트 크기의 배수인 Extent 크기를 선택하면 프리페칭 시 병렬 시퀀스 읽기 같은 Extent 기반 조작이 동일한 실제 디스크에 대해 경합하지 않습니다. 또한 페이지 크기의 배수인 Extent 크기를 고려하십시오.
    예에서 세그먼트 크기가 64KB이고 페이지 크기가 16KB인 경우 적합한 Extent 크기는 256KB일 수 있습니다.
  3. DB2_PARALLEL_IO 레지스트리 변수를 사용하여 모든 테이블 스페이스에 대해 병렬 I/O를 사용 가능하게 하고 컨테이너당 실제 디스크 수를 지정하십시오.
    예의 상황에 대해서는 DB2_PARALLEL_IO = *:4를 지정하십시오.
    테이블 스페이스의 프리페치 크기를 AUTOMATIC으로 설정하면, 데이터베이스 관리 프로그램은 사용자가 DB2_PARALLEL_IO에 대해 지정한 실제 디스크 수 값을 사용하여 프리페치 크기 값을 판별합니다. 프리페치 크기가 AUTOMATIC으로 설정되지 않는 경우, 세그먼트 크기에 활성 디스크 수를 곱한 값인 RAID 스트라이프 값을 고려하여 수동으로 설정할 수 있습니다. 다음 조건을 만족하는 프리페치 크기 값을 선택하십시오.
    • 이는 RAID 스트라이프 크기에 RAID 병렬 디바이스 수(또는 이 곱의 정수 표시)를 곱한 값과 같습니다.
    • Extent 크기의 정수 표시입니다.
    예에서는 프리페치 크기를 768KB로 설정할 수 있습니다. 이 값은 RAID 스트라이프 크기(256KB)에 RAID 병렬 디바이스 수(3)를 곱한 것입니다. 또한 Extent 크기(256KB)의 배수입니다. 이 프리페치 크기 선택은 단일 프리페치가 모든 배열의 모든 디스크에 관여함을 의미합니다. 워크로드가 주로 순차 스캔과 관련되기 때문에 프리페처가 보다 공격적으로 작업하기 원하는 경우 이 값의 배수(예: 1536KB(768KB x 2))를 대신 사용할 수 있습니다.
  4. DB2_USE_PAGE_CONTAINER_TAG 레지스트리 변수를 설정하지 마십시오. 앞에서 설명한 것처럼, RAID 스트라이프 크기와 같거나 그의 배수인 Extent 크기를 갖는 테이블 스페이스를 작성해야 합니다. 그러나 DB2_USE_PAGE_CONTAINER_TAG를 ON으로 설정하면, 1페이지 컨테이너 태그가 사용되고 Extent가 RAID 스트라이프와 정렬되지 않습니다. 결과적으로 입출력 요청 중에 최적의 조건보다 많은 실제 디스크에 액세스해야 합니다.

댓글 없음:

댓글 쓰기