티스토리 뷰

728x90

Linux의 경우 page cache, buffer cache, file cache구조가 있습니다.

가상 메모리

  • 프로세스에서 메모리를 다루기 쉽게 하는 이점을 제공
  • OS가 커널에서 메모리를 추상화함
  • 페이지 : OS가 물리 메모리를 확보/관리하는 단위. 가상 메모리의 최소 단위

리눅스의 페이지 캐시 원리

커널이 한 번 할당한 메모리를 해제하지 않고 계속 남겨두는 것이 페이지 캐시의 기본입니다.

캐싱 과정

  1. 디스크의 내용을 일단 메모리에 읽어 들인다 : 페이지가 작성된다
  2. 작성된 페이지는 파기되지 않고 메모리에 남는다 : 페이지 캐시
  3. 예외의 경우를 제외하고 모든 I/O에 투과적으로 작용한다. (디스크의 캐시를 담당하는 곳 - VFS)

리눅스는 메모리가 비어있으면 거의 다 캐싱하는 데에 메모리를 사용합니다. 그 상태에서 프로세스로부터 메모리 할당 요청이 들어오면 그때 오래된 캐시 데이터를 파기하고(LRU) 프로세스에게 메모리를 할당합니다

 

DB서버 분산의 목표는 캐시 용량 늘리기

  • AP서버처럼 단순 copy&paste 증설할 시 각 서버의 캐시 용량은 여전히 부족하므로 분산의 효과를 전혀 볼 수 없습니다.
  • 데이터가 DB서버의 메모리보다 용량이 적으면 캐시만으로도 I/O 부하 해결이 가능하지만, 메모리보다 데이터가 커지면 (= 캐시로 해결할 수 없는 규모의 데이터일 경우) 국소성을 고려한 DB서버 증설을 고려할 수 있습니다

 

단순 대수 늘리기 만으로 DB 확장성을 확보할 수 없는 이유

캐시 용량이 부족하여 서버를 증설하였는데, 그 부족한 용량까지 그대로 늘어나는 것이기 때문에 변함없이 캐싱 되질 않습니다.


참고자료

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994506128#N 

 

대규모 서비스를 지탱하는 기술 - 교보문고

데이터 구조 메모리 OS DB 서버 인프라 | 베스트셀러 『(24시간 365일)서버/인프라를 지탱하는 기술』의 핵심 저자들이 또 한 권의 역작을 펴냈다. 서버 1대부터 시작하여 1,000대의 호스트를 운영하

www.kyobobook.co.kr

 

728x90

'기초지식' 카테고리의 다른 글

Dockerfile, Docker Compose 간단 정리  (0) 2024.01.07
CQRS 패턴 간단 정리  (0) 2022.10.29
CPU bound, IO bound  (0) 2022.08.15
웹소켓 (Web Socket) 정리  (0) 2022.05.22
MSA 기초 정리  (0) 2022.04.27
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함