На очень загруженном веб-сервере Ubuntu / PHP я обнаружил, что строка PHP:
$ memcache-> connect ("int-aws_ec2.memcached.myapp.net", 11211);
иногда занимает ~ 5 секунд.
Замена url на ip-адрес снижает нагрузку на сервер с ~ 20 до 0
У меня вопрос - где настройки, которые влияют на кеширование DNS для этого? Это на уровне сервера или в библиотеке memcache? Как я могу это изменить?
Дополнительная информация: Ubuntu 10.04 lucid PHP: 5.3.2-1ubuntu4.10 Apache / 2.2.14 (Ubuntu) Amazon EC2
Еще больше информации в комментарии Селады:
Обработка DNS для сервера memcache выполняется с помощью scalr (платформа, которую я использую для управления облачными ресурсами). У них есть клиент, расположенный на экземплярах, и их собственные DNS-серверы.
/etc/nsswitch.conf - hosts: files dns /etc/resolv.conf: nameserver 172.16.0.23 домен ec2.внутренний поиск ec2.internal
Домен не находится в hosts.conf. Чтобы проверить, запускаю ли я nscd, я использовал /etc/init.d/nscd stop и получил сообщение «нет такого файла», так что, думаю, я не запускаю nscd.
Спасибо !
В итоге я сделал двойную буферизацию IP-адресов в памяти APC (PHP Cache). Это решает все проблемы синхронизации DNS.