У меня есть серверы приложений с запущенным memcached.
Что произойдет, если я сделаю запрос к memcached на 10.243.98.5, который как раз и является исходным сервером? Будет ли он использовать тот же стек tcp / ip быстрого доступа, что и 127.0.0.1, или я смогу повысить производительность, проверив, является ли 10.243.98.5 тем же окном, и заменив 127.0.0.1?
Обычно это не имеет большого значения, потому что есть вероятность, что элемент, который вы хотите, будет в memcached на другом сервере приложений, но в этом случае балансировщик нагрузки разделяет запросы, так что очень вероятно, что большинство запросов memcached будут разрешить локальный экземпляр memcached.
Похоже, вы уже знаете ответ;). Во многих случаях UNIX будет использовать:
http://en.wikipedia.org/wiki/Unix_domain_socket
Сокеты домена Unix работают быстрее, чем TCP / IP / UDP, потому что в них нет сетевого стека. Многие приложения UNIX будут использовать сокеты домена Unix для локальной связи, например, ваши драйверы базы данных или memcached. Это не всегда так, и вы должны быть осторожны, чтобы не путать сокеты домена Unix с UDP, который совершенно другой.
Какую операционную систему ты используешь? Я рискну предположить и скажу, что при использовании любого метода будет примерно такой же уровень производительности, поскольку запись DNS для 10.243 .... должна быть кэширована. Вы пробовали рассчитать время в обоих направлениях?
Многие ОС оптимизировали интерфейсы обратной петли. Скорее всего, пакеты попадут в таблицу маршрутизации, увидят, что она локальная, и пройдут по быстрой маршрутизации к входу на той же машине. Никаких драйверов Ethernet, ни ARP, ни прочего трогать не будем.
Если вы посмотрите, скорее всего, ваш MTU также будет намного больше на кольцевой проверке.