Como o MariaDB Utiliza o DNS
Quando um novo cliente conecta ao mysqld
, o mysqld
extende uma nova thread para lidar com o pedido. Esta thread primeiro confere se o nome da máquina está no cache de nomes de máquinas. Se não, a thread tenta resolver o nome da máquina.
- Se o sistema operacional suporta as chamadas seguras com thread
gethostbyaddr_r()
egethostbyname_r()
, a thread as utiliza para fazer a resolução do nome máquina. - Se o sistema operacional não suporta as chamadas de threads seguras, a thread trava um mutex e chama
gethostbyaddr()
egethostbyname()
. Perceba que neste caso nenhuma outra thread pode resolver outros nomes de máquinas que não existam no cache de nomes de máquina até que a primeira thread esteja destrave o mutex.
Você pode desabilitar a procura de nomes de máquinas no DNS iniciando o mysqld
com a opção --skip-name-resolve
. No entanto, neste caso você só pode usar números IP nas tabelas de privilégio do MariaDB.
Se você possuir um DNS muito lento e várias máquinas, pode obter mais desempenho desligando a procura de nomes de máquinas usando a opção --skip-name-resolve
ou aumentando HOST_CACHE_SIZE
(valor padrão: 128) e recompilar mysqld
.
Você pode desabilitar o cache de nomes de máquinas iniciando o servidor com a opção --skip-host-cache
. Para limpar a cache do nome de máquinas, envie uma instru;ção FLUSH HOSTS
ou execute o comando mysqladmin flush-hosts
.
Se você deseja disabilitar as conexões TCP/IP
totalmente, inicie o mysqld
com a opção --skip-networking
.