본문 바로가기
IT Basic/Operating System

[OS] OS 캐시와 분산

by HouseDust 2023. 1. 16.
반응형

웹 개발자를 위한 대규모 서비스를 지탱하는 기술, 3장

 

대규모 서비스를 지탱하는 기술 - YES24

이 책은 대규모 서비스를 개발, 운용하는 기술자를 위한 입문서다. 하테나가 학생을 대상으로 개최하는 인턴십에서 수행하는 실제 기술 강의를 기반으로 구성되어 있다. 계속해서 성장하고 있

www.yes24.com

3장, OS 캐시와 분산

 

디스크 seek 횟수를 최소화하기 위한 요령

- 데이터량 증가에 강한 알고리즘 / 데이터 구조 사용

- 데이터 압축

- 정보 검색 기술 (용도에 특화된 검색엔진)

 

System Acivity Reoporter - 부하의 지표를 시간경과에 따라 비교해서 열람할 수 있다.

sar

CPU 사용률, I/O 대기율 확인가능

 

OS 캐시 OS가 캐시로 대규모 데이터를 효율적으로 처리하려 하지만, OS 캐시로 제대로 처리할 수 없게 될 경우 분산을 고려해본다.

 

OS는 메모리를 활용하여 디스크 엑세스를 줄인다. 그 원리가 OS캐시다.

- 페이지 캐시, 파일 캐시, 버퍼 캐시 ...

 

가상 메모리 - 개별 프로세스는 정확히 메모리의 어느 부분을 사용하는지는 관여하지 않고, 어느 번지에서 시작하는지만 정해놓고 공간을 사용한다. 메모리 공간은 페이지단위로 확보/관리 한다.

메모리의 추상화. 

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

동일한 페이지에 접근할때, 이전에 남겨두었던 페이지를 사용할 수 있으므로 디스크를 읽으러 갈 필요가 없게 된다.

* 부팅 직후는 캐시가 없어 디스크 I/O가 발생하기 쉬우므로 다소 버벅거리는 것처럼 느낄 수 있다.

 

투과적으로 작용 (?)

 

 

VFS(Virtual File System)

디스크의 캐시는 페이지 캐시에 의해 제공되지만, 디스크를 조작하는 디바이스 드라이버와 OS 사이에는 파일시스템이 끼어있다. 파일 시스템 하위에 디바이스 드라이버가 있고, 파일시스템 위에는 VFS라는 추상화 레이어가 있다. 

파일시스템이 가진 다양한 함수의 인터페이스를 통일하는 역할을 하고, 페이지 캐시의 구조를 지니고 있다. 

 

LRU (Least Recently Used)

가장 오래된 것을 파기하고 가장 새로운 것을 남겨놓는다.

 

캐싱 방식 

- 메모리가 비어있으면 일단 전부 캐싱한다.

 

데이터의 크기와 데이터 압축 

경제적인 비용과의 밸런스를 고려한다. 데이터의 압축을 통해 내용을 전부 캐싱할 수 있는 경우가 많다. 

 

캐시서버로 해결되지 않을 때에는 복수 서버로 확장시킨다.

대부분 캐시 용량을 늘리기 위해, 효율을 늘리기 위해 DB 서버를 늘린다.

 

단순히 대수만 늘려서는 확장성을 확보할 수 없다.

국소성(locality)을 고려하여 분산하자!

- 액세스 패턴 고려

1. 파티셔닝

2. 요청 패턴을 섬으로 분할

캐시를 고려한다면, 캐싱이 완료된 후에 서버를 투입하고 성능 평가를 해야한다.

반응형

'IT Basic > Operating System' 카테고리의 다른 글

[OS] 9장 디스크 관리  (0) 2022.01.05
[OS] 8장 가상메모리  (0) 2022.01.05
데드락(Deadlock, 교착상태)에 대해  (0) 2021.12.30
[OS] 7장 메모리 관리  (0) 2021.12.28
[OS] 6장 CPU 스케줄링  (0) 2021.12.28

댓글