더 빠른 요청 응답

유료 사용자가 AdGuard 개인 서비스를 사용할 때 DNS 요청 경로는 다음과 같습니다:

경로를 통해 가장 빠른 응답 방안을 분석할 수 있습니다.

로컬 캐시 히트

가장 빠른 응답은 로컬 캐시 히트입니다. 로컬 캐시는 메모리 수준에서 작동하므로 매우 빠르며, 몇 마이크로초만 필요합니다.

이것은 DNS 응답의 TTL(time to live) 값에 의해 제어되며, 일반적으로 몇 분에서 몇 시간 정도입니다. 이 시간 동안 쿼리 결과가 유효하여 다시 쿼리할 필요가 없습니다.

최소 TTL 값은 제어판 -> 설정 -> DNS 설정 -> DNS 캐시 설정 -> 최소 TTL 값 덮어쓰기에서 설정할 수 있습니다. 이 값을 증가시켜 캐시 시간을 연장하면 시스템이 더 많이 로컬 캐시를 사용하게 됩니다. 일반적인 TTL 값은 600초입니다.

그러나, 이 사이트는 동시에 필터링 기능을 가지고 있으므로, 필요한 서비스가 광고 규칙에 의해 잘못 차단된 경우, 암호화된 DNS를 일시적으로 비활성화하더라도 필요한 서비스에 즉시 접근할 수 없습니다. 로컬 캐시 결과가 필터링 규칙에 의해 수정되었기 때문입니다. 따라서, 60초로 설정하는 것이 안전한 값이며, 사용자가 잘못된 차단으로 인해 암호화된 DNS를 비활성화한 후 너무 오래 기다리지 않도록 보장합니다.

AdGuard DNS 서버

현재 이 사이트는 항저우에 위치한 알리바바 클라우드 서버를 사용하고 있으며, 대부분의 동부 지역 사용자의 낮은 지연 시간 요구를 충족할 수 있습니다. 비즈니스가 성장함에 따라 전국적으로 서버를 추가할 계획입니다.

서버 캐시 히트

기본적으로 각 사용자에게 4MB의 DNS 캐시가 설정되어 있습니다. 경험에 따르면, 이는 한 가정의 사용에 충분합니다. 이 설정의 자유로운 수정은 사용자 서비스가 강제로 중단될 수 있으므로, 이 사이트는 이 설정의 수정 입구를 차단했습니다.

상위 DNS 서버

알리바바 클라우드 서비스를 사용하므로, 상위 DNS 서비스도 알리바바 클라우드의 DNS 서비스를 선택했습니다. 속도가 매우 빠르며, 일반적으로 몇 밀리초 내에 결과를 반환합니다.

사용자는 상위 DNS 서버에 요청하는 세 가지 방법이 있습니다:

  1. 부하 분산: 이 사이트는 기본적으로 부하 분산을 사용하여 가장 빠른 서버를 자동으로 선택하여 결과를 반환합니다.
  2. 병렬 요청: 이 사이트는 현재 병렬 요청의 사용을 제한하지 않습니다.
  3. 가장 빠른 IP 주소: 현재 의미 없는 설정으로, 이 사이트는 이 설정의 수정 입구를 차단했습니다.

가장 빠른 IP 주소가 왜 의미가 없는지 설명하겠습니다. 가장 빠른 IP는 실제로 서비스를 접근하는 장치 자체가 선택해야 합니다. AdGuard 서비스가 항저우에서 실행되고 사용자가 베이징에 있는 경우, AdGuard는 항저우의 IP 주소가 가장 빠르다고 생각할 것입니다. 그러나 실제로는 사용자가 베이징의 서비스에 접근하는 속도가 가장 빠릅니다. 항저우의 IP 주소를 선택하면 오히려 지연 시간이 증가합니다. 따라서, 이 사이트는 이 설정의 수정 입구를 차단했습니다. 이 설정은 사용자의 가정 네트워크에서 유용할 수 있지만, 공용 서비스에서는 의미가 없습니다.

네트워크 경험에 영향을 미치는 요소는 많습니다. 예를 들어, 서버 대역폭, 네트워크 혼잡, 서버 부하, 네트워크 품질 등이 있습니다. 가장 빠른 IP 주소를 선택한다고 해서 가장 빠른 응답 속도를 보장할 수는 없습니다. 지연 시간은 그 중 하나의 요소일 뿐, 유일한 요소는 아닙니다. 사용자의 설정 오류로 인해 서비스 품질이 저하되는 것을 방지하기 위해, 이 사이트는 이 설정의 수정 입구를 차단했습니다.

규칙 필터링

가장 일반적으로 사용되는 모드는 블랙리스트 목록입니다. 사용자는 사전 설정된 블랙리스트 목록에서 선택할 수 있습니다. 블랙리스트의 히트는 해시 알고리즘을 사용하여, 규칙의 양에 관계없이 히트 시간은 O(1)입니다. 사용자는 규칙의 양이 많아서 히트 시간이 길어질까 걱정할 필요가 없습니다.

그러나, 규칙이 계산된 후 메모리에 저장되며, 각 사용자의 서비스 메모리 사용은 300MB로 제한됩니다. 이는 대부분의 사용자의 요구를 충족할 수 있습니다. 사용자의 규칙이 너무 많으면 메모리가 부족해져 서비스가 반복적으로 재시작될 수 있으며, 이로 인해 서비스가 중단될 수 있습니다.

이 사이트는 현재 사용자가 너무 큰 규칙을 도입하는 것을 방지하기 위해 제3자 규칙의 사용을 차단했습니다. 앞으로 더 나은 제한 수단이 생기면 제3자 규칙의 사용을 다시 개방할 것입니다.

요약

더 빠른 요청 응답을 얻기 위해 사용자는 다음을 할 수 있습니다:

  1. 최소 TTL 값을 적절히 증가시켜 로컬 캐시 히트율을 높입니다.
  2. 적절한 DNS 캐시 크기를 설정합니다(이미 기본값으로 설정됨).
  3. 지리적으로 가장 가까운 도시에서 서비스를 생성합니다(기업 발전 대기).
  4. 해외 요구가 없으면 부하 분산을 선택하고, 해외 요구가 있으면 병렬 요청을 선택합니다.
  5. 자신에게 적합한 블랙리스트 규칙을 사용하고, 너무 큰 규칙을 도입하지 않습니다.