대규모 서비스를 지탱하는 기술, 9강 IO 부하를 줄이는 방법 요약
캐시를 전제로 I/O 부하 줄이기
- 데이터 규모에 비해 물리 메모리가 크면 캐시를 통해 전체 데이터를 메모리에 올려둘 수 있기 때문에 이를 고려해야 한다.
- 일반적인 케이스에 캐시로 올리지 못하더라도 압축 알고리즘을 이용해 올릴 수 있는 경우도 있으니 이를 조사해보는 것도 좋다.
- 실무에서는 메모리의 가격도 큰 의사결정 요소가 되기 때문에 소프트웨어 개선과 하드웨어 구매 중 어느 것이 싸게 먹히는지 생각해보아야 한다.
복수 서버로 확장시키기
- 데이터를 전부 캐싱할 수 없는 규모에서 사용하기 적합하다.
- AP 서버를 늘리는 건 정말 쉽다.
- DB 서버는 늘리려면 고려할 사항이 많다.
- 테이블 단위로 각각 다른 DB 서버로 나누는 등의 방식을 사용할 수 있다.
단순히 대수를 늘리는 건 때론 해결책이 되지 못한다
- 캐시 용량이 부족해서 똑같은 서버를 만들었는데 그 서버도 똑같이 캐시 용량이 부족할 수 있다.
- 단순히 대수를 늘리려고만 하지 말자.
OS 캐시의 동작 방식
- 디스크에서 데이터를 읽었을 때 데이터가 페이지 캐시에 없고 메모리가 남아 있다면 언제든 새로운 캐시를 생성한다.
- 캐시용 메모리가 없으면 오래된 캐시를 버리고 새 캐시를 얹는다.
- 프로세스가 반드시 필요로 하는 메모리는 캐시에 우선한다.
페이지 캐시에 의한 부하 경감 효과
- 페이지 캐시가 잘 받으면 I/O 대기 시간이 확연하게 줄어든다.
OS 부팅과 관련된 문제
- 캐싱이 잘 된 서버를 껐다켜면 캐싱이 전부 풀린다.
- 꺼진 컴퓨터를 다시 켜면 OS 는 그 때부터 캐싱을 시작한다.
- 때론 이 과정 때문에 DB 를 껐다 켰는데, DB Lock 으로 인해 서비스가 불능상태가 되기도 한다.
- 웜업 과정이 필요할 수 있다.
부팅 직후에는 메모리 사용률이 5% 미만으로 잡히는 DB 서버에서 엄청 큰 데이터를 읽으면 그 때부터 파일의 내용이 캐시로 올라가 추후엔 메모리 사용률이 95% 까지 올라갈 수도 있다. 그렇다고 DB 서버가 고장난 것은 아니니 안심하자.
반응형
'인프라 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
대규모 서비스를 지탱하는 기술, 8강 OS의 캐시 구조 요약 (0) | 2023.06.23 |
---|---|
대규모 서비스를 지탱하는 기술, 7강 대규모 데이터를 다루기 위한 기초 지식 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 6강 규모 조정의 요소 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 5강 대규모 데이터 처리의 어려운 점 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 4강 대규모 데이터란 요약 (0) | 2023.06.23 |