TAG

#Performance

11 posts

CDN - 사용자 가까이 둔다

CDN · Cache

CDN - 사용자 가까이 둔다

서버를 아무리 늘려도 거리는 안 줄어든다. 사본을 사용자 근처에 두는 층이 무엇을 해결하고, 공유 캐시라서 무엇이 위험한지 본다.

부하를 견디는 법 6편

수직이냐 수평이냐

Scaling · Architecture

수직이냐 수평이냐

서버를 키우는 것과 늘리는 것은 난이도가 다르다. 늘리는 쪽이 어려운 이유는 서버가 아니라 서버가 들고 있는 상태에 있다.

부하를 견디는 법 4편

캐시가 프로세스 밖으로 나가면

Cache · Redis

캐시가 프로세스 밖으로 나가면

서버마다 캐시가 달라지는 문제를 공용 캐시로 푼다. 대신 네트워크·직렬화·단일 장애점·스탬피드라는 계산서가 새로 온다.

부하를 견디는 법 3편

캐시 - 같은 답을 두 번 만들지 않는다

Cache · Performance

캐시 - 같은 답을 두 번 만들지 않는다

한 번 만든 결과를 들고 있다가 다시 준다. 쉬운 이야기라서 위험한데, 진짜 알맹이는 무엇에는 캐시를 붙이면 안 되는가다.

부하를 견디는 법 2편

무엇이 먼저 무너지나

Performance · Scaling

무엇이 먼저 무너지나

부하가 늘면 전부가 고르게 느려지는 게 아니라 가장 좁은 한 곳이 먼저 막힌다. 도구를 고르기 전에 그 자리를 찾는 이야기.

부하를 견디는 법 1편

캐시 - 안 보내는 게 가장 빠르다

HTTP · Web

캐시 - 안 보내는 게 가장 빠르다

배포했는데 사용자 화면이 안 바뀐다. 그 사고에서 출발해 Cache-Control·ETag·조건부 요청이 무엇을 정하는지 본다.

HTTP는 어떻게 오가나 4편

연결을 매번 새로 맺지 않는다

HTTP · Web

연결을 매번 새로 맺지 않는다

요청을 보내려면 먼저 연결부터 맺어야 한다. 그 준비 비용을 줄이려는 시도가 HTTP 버전을 올려온 이유다.

HTTP는 어떻게 오가나 3편

B-tree와 LSM-tree - 읽기와 쓰기 중 무엇을 팔 것인가

Database · Storage

B-tree와 LSM-tree - 읽기와 쓰기 중 무엇을 팔 것인가

8바이트를 바꾸려고 8KB를 다시 쓴다. 그게 싫으면 뒤집으면 되는데, 그러면 읽기가 대가를 낸다.

데이터베이스 공통 개념 13편

실행 계획 - 세 가지만 보면 된다

Database · Performance

실행 계획 - 세 가지만 보면 된다

EXPLAIN 출력이 외계어처럼 보일 때. 트리를 어느 방향으로 읽고, 어디서 범인을 찾는가.

데이터베이스 공통 개념 8편

조인 알고리즘 - DB는 세 가지 방법 중 하나를 고른다

Database · Join

조인 알고리즘 - DB는 세 가지 방법 중 하나를 고른다

중첩 반복·해시·정렬 병합이 각각 언제 이기는지, 그리고 조인이 갑자기 느려지는 진짜 이유.

데이터베이스 공통 개념 7편

인덱스 - 왜 빠르고, 왜 만들어도 안 타는가

Database · Index

인덱스 - 왜 빠르고, 왜 만들어도 안 타는가

B-tree가 이진트리가 아닌 이유부터, 인덱스를 만들어놓고도 풀스캔이 도는 다섯 가지 경우까지.

데이터베이스 공통 개념 6편