3. 스트라이핑

  • LV를 생성할 때 스트라이핑속성을 부여하면 VG에 포함된 모든 PV에서 일정한 크기의 블록을 순차적으로 LV에 할당해서 생성하게 된다.
  • lv 크기가 1GB이고 스트라이핑 크기가 512KB라면 LV는 총 2,000개(512KB*2000=1GB)의 스트라이핑으로 구성된다.
  • 최근 OLTP시스템에서는 128KB~1MB정도의 스트라이핑 크기가 일반적으로 사용
  • DB에서 운영되는 업무의 성격에 따라 스트라이핑 크기가 결정될 수 있다.

논리볼륨의 스트라이핑 크기 결정요소

1) DBMS시스템 업무 성격(OLTP 또는 DW)
2) DB_BLOCK_SIZE
3) DB_FILE_MULTIBLOCK_READ_COUNT



# OLTP 시스템처럼 다수 사용자에의해서 단일 블록에 대한 요청이 많은 시스템은 가능한 스트라이핑 크기를 크게 가져가는것이 유리.

  • 두명의 사용자에 의해서 동시에 각각 1번의 I/O요청이 발생
  • DB 전체적으로 총 2회의 I/O요청이 발생하게 된다.
  • 동일한 물리 볼륨에 대한 경합은 발생되지 않음
  • 필요한 오라클 블록이 스트라이핑 크기 안에 포함되어야 하고 이를 위해서 스트라이핑 크기는 최소한 오라클의 블록사이즈보다는 거야 한다.
    ※ 오라클의 최소 I/O단위 : 익스텐트를 구성하는 블록 크기, 일반적으로 테이블스페이스를 생성할 때 지정되는 BLOCKSIZE값에 의해서결정(default : DB_BLOCK_SIZE변수 값)



# 스트라이핑 크기가 오라클의 블록사이즈보다 작게 설정한 경우

  • 필요한 오라클 블록이 두개의 스트라이핑에 걸쳐 있기 때문에 두명의 동시 유저에 의해서
  • 발생한 총 4회의 I/O가 발생, 하나의 물리볼륨에에대해 각각2회의 I/O가 동시에 발생하여 I/O경합에 대한 가능성을 높이게 된다.
  • 스트라이핑 크기 >= n*DB_BLOCK_SIZE*2 (n >=1)



# DW시스템은 반대로 가능한 적은 스트라이핑 크기를 가지는 것이 유리

  • 주로 하나의 사용자에 의해서 대량의 I/O가 발생한다면 작은 스트라이핑 크기로 가능한 전체 물리 볼륨으로 오라클 블록이 분산되는 것이 유리.
  • 오라클에서 테이블 전체 스캔이 발생할 때는 DB_FILE_MULTIBLOCK_READ_COUNT파라미터에 지정된 값에 따라서 한 번에 읽혀지는 오라클 블록수 결정
  • 스트라이핑 크기 <= DB_FILE_MULTIBLOCK_READ_COUNT * DB_BLOCK_SIZE