CNAMES медленны? - PullRequest
       6

CNAMES медленны?

16 голосов
/ 14 апреля 2009

Я использую CNAME вместе с S3 / CloudFront для обслуживания некоторых статических файлов, таких как js, css, images и т. Д.

Я делаю это, чтобы сделать URL-адрес корзины красивым, и, поскольку я считаю, что лучше настроить таргетинг на мой сайт, и на случай, если в будущем я захочу переместить эти файлы, изменения должны быть прозрачными.

Сегодня, читая блоги, я видел, что некоторые считают, что CNAME - это зло для скорости.

Итак, что об этом думать?

Ответы [ 4 ]

15 голосов
/ 14 апреля 2009

Как и в других ответах, использование CNAME должно вызывать лишь минимальную дополнительную задержку разрешения DNS и только в том случае, если результат еще не находится в кэше рекурсивного DNS-сервера.

Обратите внимание, что DNS-клиенты обычно не запрашивают явно записи CNAME. Обычно они запрашивают любой тип записи, который им действительно нужен - для веб-браузера, который будет A или AAAA запись.

Задача вышестоящих серверов - распознать, что в запрашиваемом доменном имени есть запись CNAME, а затем найти и вернуть целевой результат. В этом случае и запись CNAME, и требуемый результат возвращаются в разделе ответа ответа DNS (а не в дополнительном разделе , как кто-то еще ответил).

Для оптимальной производительности лучше всего, чтобы цель CNAME размещалась на том же полном DNS-сервере, что и доменное имя, содержащее CNAME, чтобы разрешение CNAME можно было выполнять без дальнейших запросов DNS.

13 голосов
/ 14 апреля 2009

CNAMES добавляют еще один уровень косвенности, используя поиск DNS, так что будет наложен некоторый штраф. Однако после того, как IP-адрес был просмотрен через DNS, он должен оставаться в кэше, и для этого клиента больше не должно быть наказание.

Убедитесь, что время истечения в вашей записи DNS установлено правильно, и вы не увидите видимой задержки.

9 голосов
/ 14 апреля 2009

Влияние использования CNAME в большинстве случаев очень низкое. Формат ответа DNS позволяет серверу помещать в сообщение некоторые дополнительные данные, и во многих случаях, когда вы просматриваете запись CNAME, сервер добавляет соответствующую запись A в раздел дополнительных данных, поэтому больше никаких просмотров не требуется.

5 голосов
/ 14 апреля 2009

С CNAMES следует помнить, что если цель CNAME не кэшируется, то, как сказал Бен С., потребуется еще один поиск.

ОДНАКО, если целью CNAME является еще одно CNAME, тогда потребуется ДАЖЕ ДРУГОЙ поиск, ad nauseum.

Я бы не рекомендовал указывать ваше CNAME на другом CNAME.

...