메뉴 건너뛰기

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성능의 향상의 가장 근본적인 해결책은 논리적인 블록 요청 횟수를 최소화하는것이다.



 

번호 제목 글쓴이 날짜 조회 수
27 9. ASH(Active Session History) 실천하자 2010.06.14 15607
26 8. Statspack / AWR balto 2010.06.13 12767
25 7. Response Time Analysis 방법론과 OWI file balto 2010.06.13 8066
24 5. 오라클 Lock file 휘휘 2010.06.07 26368
23 4. 동시성 구현 사례 토시리 2010.06.07 10939
22 3. 비관적 vs. 낙관적 동시성 제어 휘휘 2010.06.07 8210
21 2. 트랜잭션 수준 읽기 일관성 file 휘휘 2010.06.07 19568
20 4. DBMS_XPLAN 패키지 balto 2010.06.06 10461
19 3. SQL 트레이스 file balto 2010.06.06 21175
18 3장. 오라클 성능 관리 운영자 2010.06.06 6697
17 2. AutoTrace 실천하자 2010.06.06 8597
16 1. Explain Plan 실천하자 2010.06.06 14663
15 2장. 트랜잭션과 Lock 운영자 2010.06.01 6895
14 6. 문장수준 읽기 일관성 file 토시리 2010.06.01 10432
13 1. 트랜잭션 동시성 제어 실천하자 2010.05.31 8631
12 5. Undo file 토시리 2010.05.31 18653
11 11. Shared Pool file 실천하자 2010.05.31 18511
10 8. 블록 클린아웃 휘휘 2010.05.31 12283
9 7. Consistent vs. Current 모드 읽기 휘휘 2010.05.31 10537
8 10. 대기 이벤트 balto 2010.05.30 8011