Por que uma conexão DB sobre LAN seria mais lenta que uma conexão WAN?

3

Eu tinha notado há tempos que uma conexão de banco de dados MySQL através da minha LAN era significativamente mais lenta do que uma conexão de banco de dados pela Internet.

Estou executando o Windows 7 de 32 bits e estou conectado a um switch usando um cabo Ethernet. O switch está conectado a um modem / roteador, que é onde minha conexão com a Internet chega ao prédio. Eu não estou usando WiFi.

Eu corri o seguinte código:

//store current time
$start = microtime(true);

//connect to database outside my LAN
$c1 = mysql_connect("1.2.3.4", "user1", "pass1");
mysql_select_db("database1", $c1);

//print out the time taken in seconds
echo microtime(true) - $start, "<br>";

//close the database connection
mysql_close($c1);


//store current time
$start2 = microtime(true);
//connect to database on my LAN
$c2 = mysql_connect("192.168.0.10", "user2", "pass2");
mysql_select_db("database2", $c2);

//print out time taken in seconds
echo microtime(true) - $start2, "<br>";

//close database connection
mysql_close($c2);

três vezes que retornaram os seguintes horários:

Banco de dados de WAN externo: 0,054498910903931, 0,055356025695801, 0,05623197555542

Base de dados da LAN interna: 5.0052859783173, 5.0053160190582, 5.005627155304

A velocidade de transferência de arquivos da LAN (usando o Samba para compartilhar a unidade na máquina Ubuntu) é de aproximadamente 30MB / se minha velocidade de conexão de banda larga é de 35Mbps e 7Mbps.

Anecdotally, entrar no servidor local usando o SSH é bastante lento.

Eu não sei de que outras informações você pode precisar, então, por favor, peça mais, estou perplexo a respeito de porque uma conexão local é tão muito mais lenta!

    
por Jon 20.01.2012 / 13:23

1 resposta

3

Eu usei o Wireshark para inspecionar o tráfego de conexão e encontrei várias solicitações do MDNS que pareciam falhar.

Posteriormente me deparei com esse bug com a configuração do switch de serviço de nomes do Ubuntu e alterou o arquivo /etc/nsswitch.conf para usar o mDNS como último recurso, conforme descrito no Configuração da Rede do Servidor Ubuntu .

Reiniciar os serviços necessários (MySQL, SSH) acelerou tudo como mágica!

    
por 20.01.2012 / 14:12