버퍼 캐시
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 버퍼 (Buffer)[편집]
- 두 장치간에 입출력 속도차이로 인한 처리 지연을 방지하지 위하여 도입된 개념
- 디스크는 CPU 와 비교하면 비교가 안될 정도로 느리다. 그래서 1개의 연산 데이터를 읽어들여 CPU 에 보낼 때, CPU 는 이에 따라 분당 100개의 데이터를 처리 할 수 있어도 디스크로 인하여 1개의 데이터를 처리 할 수 밖에없다.
- 이 때 CPU는 다른 작업들을 수행 하지 못하고 99개의 데이터 영역 처리 공간 및 시간이 지속 대기 및 지연이 되므로 이에 따라 연산속도를 제대로 활용하지 못한 채 연산 속도가 느려지게 된다.
- 그래서 그 사이에서 중간에 버퍼가 도입되게 되었다.
- 보통 이와 같이 CPU 가 연산을 하는 과정에서 언급 되는 버퍼는 메모리내의 버퍼 영역을 뜻한다.
- 메모리 영역이 중간에 있으면 디스크가 느리더라도 메모리에 1개씩 지속적으로 데이터를 전송하면서 메모리가 보관을 할 수 있다.
- CPU 는 메모리가 디스크로 부터 데이터를 지속적으로 받아 적재를 하기 때문에 그 동안 이 작업에 쓸 수 있는 연산공간을 다른 연산작업에 사용하는 한편, 메모리가 보관했다가 전송하는 디스크의 일부 데이터를 디스크가 데이터를 모두 전송할때 까지 대기 할 필요 없이 부분적으로 지속 처리를 하기 때문에 각 요소들이 대기시간으로 인한 성능 지연이 없이 CPU 연산을 100% 까지 사용 할 수 있다.
2 버퍼 와 캐시[편집]
2.1 캐시 (Cache)[편집]
- 입출력 처리 속도 지연을 방지하는 것은 버퍼와 유사하나 추가적으로 연산 처리속도를 극대화 하기 위하여 도입된 개념
- 흔히 DB에서 작업이 필요한 데이터들을 디스크에서 선별하여 메모리에 보관한 후, 이 메모리를 디스크 대신 작업 데이터 보관 공간으로 사용
- DB가 디스크로부터 데이터를 지속적으로 조회를 하여 연산 처리 작업을 수행한다면, 위의 버퍼 개념과 같이 지속적인 성능 저하가 발생하므로 캐시는 매우 필수적인 요소
- 버퍼와캐시의 차이점 결론
- 버퍼, 캐시는 두 장치간의 속도 간극을 줄이는데에 목적을 두는건 동일
- 버퍼는 속도가 느린 장치에 관점을 두어 속도 간극을 줄이고
- 캐시는 속도가 빠른 장치에 관점을 두어 속도간극을 줄이는 것