메뉴 건너뛰기

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 4. Prefetch file balto 2010.07.10 28434
65 5. 오라클 Lock file 휘휘 2010.06.07 26368
64 2. DB 버퍼 캐시 file 휘휘 2010.05.24 21916
63 3. SQL 트레이스 file balto 2010.06.06 21175
62 1. 기본 아키텍처 [1] file 휘휘 2010.05.23 19899
61 2. 트랜잭션 수준 읽기 일관성 file 휘휘 2010.06.07 19568
60 5. Undo file 토시리 2010.05.31 18650
59 11. Shared Pool file 실천하자 2010.05.31 18511
58 9. Static vs. Dynamic SQL [1] balto 2010.07.04 18343
57 4. Array Processing 활용 file 휘휘 2010.07.05 18239
56 1 장. 오라클 아키텍처 운영자 2010.05.20 17842
55 5. Fetch Call 최소화 file 휘휘 2010.07.05 16839
54 9. ASH(Active Session History) 실천하자 2010.06.14 15607
53 2. SQL 처리과정 file 휘휘 2010.06.28 15340
52 3. 버퍼 Lock [1] 휘휘 2010.05.24 15225
51 6. 바인드 변수의 부작용과 해법 file 실천하자 2010.06.28 14665
50 1. Explain Plan 실천하자 2010.06.06 14663
49 8. PL/SQL 함수 호출 부하 해소 방안 토시리 2010.07.11 14023
48 7. Result 캐시 휘휘 2010.07.19 12969