DBMS, OS, WebServer 와 같은 캐싱을 지원하는 시스템에서는 성능관련된 여러 책이나 문서를 보면 Cache Hit Ratio(이하 적중률, Hit Ratio)가 9x%이상되어야 한다라고 언급하고 있다. 만일 9x% 이하가 되면 캐시가 의미없는 존재가 되므로, Hit Ratio를 개선할 필요가 있다라고 이야기 한다.
왜 9x%이상이여 하는가 궁금하지 않는가?
그래서 Cache Hit Ratio (캐시 적중률)이 0.9x(9x%)이상이여야 하는 이유를 증명해보았다. 일단 Cache Hit Ratio의 계산하는 방법은 다음과 같다.
Cache Hit Ratio = 캐시에서 읽은 횟수 /  전체 읽은 횟수 * 100%
우선 캐시의 동작에 대해서 알아보자.
1. Hit - 데이터가 캐시에 있는 경우 : Access cache
2. Miss - 데이터가 캐시에 없는 경우 : Access cache(Penalty) , Access non-cache

대부분의 캐시는 지역성의 원리에 의해 Hit 횟수과 Miss 횟수보다 크게 된다.
(Miss의 경우 캐시 접근 시간만큼 Penalty가 발생)

이제 간단한 사례를 통해 본격적으로 이 문제를 증명해보자.
캐시 접근 시간이 100ns이고, 캐시가 아닌 곳의 접근 시간이 1000ns인 ??%의 캐시 적중률을 가진 시스템의 평균 접근 시간을 구해보자.
간단히 설명을 하자면
Cache Access Time : 캐시 접근 시간. 100ns
Non-Cache Access Time : 캐시 아닌 것에 접근 시간. 1000ns
Hit Ratio : 캐시 적중률.
Average Access Time : 평균 접근 시간.
  Average Access Time = Cache Access Time × Hit Ratio
                                        + { (Main Memory Access Time + Cache Access Time) × Miss Ratio }


vs.Best : 최고 적중률 대비

사용자 삽입 이미지
위 사례를 보면 Cache Hit Ratio 가 1% 감소하면 Average Access Time 은 0.09비율만큼 증가한다. 예를 들어 Cache Hit Ratio 가 99%일때와 90%일때의 Average Access Time을 비교하면  90%일때가 거의 2(1.82)배 만큼 증가한 것을 알 수 있다. 또한 Cache Access Time과 Non-cache Access  Time의 차이가 크며 클수록 Hit Ratio의 감소치에 비례하여 Average Access Time은 가중치는 증가하게 된다.
(Average Access Time 증가한다는 것은 성능 나빠지는 것을 의미함.)
그리하여 결론은 Hit Ratio가 낮으면 캐시는 무용지물이 되므로, Hit Ratio를 적정 수준 (98%)이상으로 유지할 수 있도록 해야 한다. 이를 위해서는 데이터의 참조의 지역성을 잘 고려하여 알맞은 캐시 공간을 확보해야 한다.


참조 : Computer System Architecture (M. Morris Mano)
            직접 작성.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 좐군

2008/11/23 09:00 2008/11/23 09:00
, , , , , , , ,
Response
No Trackback , a comment
RSS :
http://John.tobe30.com/tc/rss/response/16

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Comments List

  1. bigbangg 2011/04/30 22:08 # M/D Reply Permalink

    컴퓨터 구조 공부중인데 좋은 정보군요..
    참고하고 갑니다 @_@//

Leave a comment
[로그인][오픈아이디란?]