5.5. Оптимизация сервера MySQL
5.5.5. Как MySQL использует DNS
Когда к mysqld подключается новый клиент, mysqld выделяет новый поток для обработки данного запроса. Этот поток вначале проверяет, имеется ли в кэше имен хостов имя требуемого хоста. Если нет, то поток вызовет функции gethostbyaddr_r() и gethostbyname_r() , чтобы определить имя хоста.
Если операционная система не обеспечивает вышеописанные вызовы с поддержкой потоков, то данный поток заблокирует флаг и вызовет вместо этого функции gethostbyaddr() и gethostbyname() . Следует учитывать, что в таком случае никакой другой поток не сможет определять имена других хостов, отсутствующих в кэше имен хостов, пока первый поток не будет готов.
Можно заблокировать поиск DNS хоста, запустив mysqld с параметром --skip-name-resolve . В этом случае, однако, в таблицах привилегий MySQL можно использовать только IP-адреса.
Если процесс установления DNS очень медленный и хостов очень много, то можно получить более высокую производительность либо путем блокировки поиска DNS при помощи --skip-name-resolve , либо увеличив размер определения HOST_CACHE_SIZE (по умолчанию: 128) и перекомпилировав mysqld .
Заблокировать кэш имен хостов можно с помощью --skip-host-cache . Можно также очистить этот кэш с помощью команды FLUSH HOSTS или mysqladmin flush-hosts .
Можно запретить соединения по протоколу TCP/IP, запустив mysqld с опцией --skip-networking .
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|