메뉴 건너뛰기

bysql.net

2. Memory vs. Disk I/O

2010.07.12 08:00

휘휘 조회 수:7439


(1) I/O 효율화 튜닝의 중요성
  • 디스크를 통한 입출력은 물리적인 동작에 의해 자료를 가져오게 되므로 속도가 느림
  • 그러므로 디스크 I/O를 최소화 하고, 대부분의 처리를 메모리에서 할수 있도록 버퍼 캐시 효율성을 높이면 데이터 베이스 성능을 향상시킬수 있음

(2) 버퍼 캐시 히트율 (Buffer Cache Hit Ratio)

  • BCHR
    • 전체 읽은 블록 중에서 얼만큼을 메모리 버퍼 캐시에서 찾았는지 나타 내는 것
  • 공식

BCHR = (캐시에서 독바로 찾은 블록수 / 총읽은 블록수) * 100
= ((논리적 블록읽기 - 물리적 블록읽기) / 논리적 블록 읽기 ) * 100
= (1-(물리적 블록읽기) / (논리적 블록읽기) ) * 100

논리적 블록읽기 = 총읽은 블록수
캐시에서 곧바로 찾은 블록 수 = 논리적 블록읽기 - 물리적 블록읽기



  • 모든 블록 읽기(Direct Path Read 방식 제외) 는 버퍼 캐시를 통해 이루어지며 읽고자 하는 블록을 버퍼 캐시에서 찾아보고 없을때 디스크로 읽어들이고, 디스크에 읽을때 역시 버퍼캐시에 적재한후 읽어들임



call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.02       0.02          0          2          0           0
Fetch     3001      0.40       0.64         24       3135          0       30000
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total     3003      0.43       0.67         24       3137          0       30000




Disk(물리적 블록읽기) : 24
Query + Current (논리적 블록읽기): 3137

BCHR= (1-(Disk / (Query + Current))) * 100
=(1-(24/(3137+0))) ) * 100
=99.25%



  •  I/O 효율화 튜닝
    • 논리적인 블록 요청 횟수를 줄이고 , 물리적으로 디스크에서 읽어야 할 블록 수를 줄이는 것

(3) 네트워크, 파일시스템 개시가 I/O 효율에 미치는 영향

  • 데이터베이스 서버와 스토리지 간에  NAS 서버나 SAN을 통해 연결되는 아키텍쳐 사용이 일반화되어 네트워크 속도가 성능에 영향을 끼치게 되며 
  • RAC의 경우 각 노드간 네트워크를 통해 캐시블록을 공유하므로 논리적블록으로 통계가 잡히더라도  실제 속도는 메모리+네트워크 전송속도가 되므로 예상보다 느려질수 있다.
  • 디스크 속도, SAN, RAC 인터커넥트등 무엇이라도 I/O성능의 향상의 가장 근본적인 해결책은 논리적인 블록 요청 횟수를 최소화하는것이다.



 

번호 제목 글쓴이 날짜 조회 수
67 Front Page file 운영자 2010.05.17 154865
66 1 장. 오라클 아키텍처 운영자 2010.05.20 17842
65 1. 기본 아키텍처 [1] file 휘휘 2010.05.23 19899
64 3. 버퍼 Lock [1] 휘휘 2010.05.24 15225
63 2. DB 버퍼 캐시 file 휘휘 2010.05.24 21916
62 4. Redo file 휘휘 2010.05.24 11314
61 9. Snapshot too old balto 2010.05.30 8100
60 10. 대기 이벤트 balto 2010.05.30 8010
59 7. Consistent vs. Current 모드 읽기 휘휘 2010.05.31 10537
58 8. 블록 클린아웃 휘휘 2010.05.31 12283
57 11. Shared Pool file 실천하자 2010.05.31 18511
56 5. Undo file 토시리 2010.05.31 18650
55 1. 트랜잭션 동시성 제어 실천하자 2010.05.31 8631
54 6. 문장수준 읽기 일관성 file 토시리 2010.06.01 10432
53 2장. 트랜잭션과 Lock 운영자 2010.06.01 6895
52 1. Explain Plan 실천하자 2010.06.06 14663
51 2. AutoTrace 실천하자 2010.06.06 8597
50 3장. 오라클 성능 관리 운영자 2010.06.06 6694
49 3. SQL 트레이스 file balto 2010.06.06 21175
48 4. DBMS_XPLAN 패키지 balto 2010.06.06 10461