일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 푸시
- nginx설치
- GCM 번역
- 디자인패턴
- notification
- php
- Push
- 웹사이트성능
- JPA
- nginx설정
- APNS
- 카프카
- GCM
- 웹사이트최적화기법
- Design Pattern
- graphql
- 웹사이트 성능
- gcm 푸시 번역
- 도메인 주도 개발
- git
- 성능
- ddd
- 푸시 번역
- nginx
- Java
- 자바스크립트
- 카프카 트랜잭션
- 페이스북 번역
- kafka
- Today
- Total
간단한 개발관련 내용
[웹사이트최적화기법][Chapter09] 규칙9 : DNS 조회를 줄여라. 본문
Chapter09. DNS 조회를 줄여라.
DNS는 우리가 기억하기 어려운 호스트의 IP 주소를 쉽게 찾을 수 있도록 도와주고, 서버 IP가 바뀌더라도 도메인을 통해 호스트를 찾아갈 수 있도록 해 준다. 이러한 DNS 응답시간은 DNS 리졸버에 몰리는 사용량, 브라우저와 얼마나 가까이 있는가, 대역폭 속도는 얼마인 가에 따라서 달라진다.
1. DNS 캐싱과 TTL.
DNS 조회는 더 나은 성능을 위해서 캐시에 저장되는데 이 저장은 주기적으로 캐시에서 삭제되어야만 했고 얼마나 자주 삭제되는지는 여러 가지 설정에 의해 결정된다.
ㄱ. DNS 캐싱에 영향을 주는 요소.
OS와 브라우저의 캐싱 그리고 HTTP 의 Kepp-Alive 의 우선순위를 고려해야 하며, DNS의 TTL값도 함께 캐싱에 영향을 주는 요소이다.
ㄴ. TTL 값.
클라이언트가 받은 한 호스트 이름에 대한 DNS 기록의 평균 TTL값은 최대 TTL값의 반이다.
2. 브라우저 입장에서 본 DNS 조회.
ㄱ. 인터넷 익스플로어.
ipconfig/displaydns, ipconfig/flushdns 를 통해 조회 및 초기화 할 수 있다. DnsCacheTimeout, KeepAliveTimeOut, ServerInfoTimeOut 속성이 있고 레지스트리 설정을 통해 제어 가능하며, Keep-Alive 의 역할이 중요함.
ㄴ. 파이어폭스.
network.dnsCacheExpiration, network.dnsCacheEntries, network.http.keep-alive.timeout 의 세 속성으로 제어할 수 있다.
3. DNS 조회를 줄이자.
클라이언트의 DNS 캐시가 비어 있을 때(브라우저와 OS 둘 다), DNS조회 횟수는 해당 페이지 안에 존재하는 고유한 호스트 이름의 개수와 동일하다. 고유한 호스트 이름의 수를 줄이면 한 페이지 내에서 동시에 다운로드될 수 있는 구성요소도 줄어든다. DNS 조회를 줄이는 것과 동시 다운로드를 최대한 활용하고자 하는 좋은 절충안을 찾아야 할 것이다.
Kepp-Alive를 사용하고 도메인 수를 줄여 DNS 조회 수를 줄여라.