Temos uma rede pequena (talvez 15 usuários no horário comercial, cerca de 30 dispositivos) gerenciando conexões de internet e linhas telefônicas.
O principal uso da rede é o acesso dos usuários à interface de banco de dados hospedada externamente com base na Web, com a qual eles gerenciam os negócios (clientes, vendas, faturas, etc.). esta interface de banco de dados baseada na web é um aplicativo php / mysql, desenvolvido ao longo do último ano e meio. Como programador principal (se não apenas), tenho acesso a tudo sobre esse aplicativo e nossa rede, desde a solução de hospedagem até o código-fonte até a escolha das tecnologias.
alguns meses atrás, notamos uma péssima desaceleração em algo como 5% das clics feitas usando a interface do banco de dados. O que quero dizer é que a maioria dos cliques entregará o conteúdo em um a dois segundos e, às vezes, um dos cliques levará até um minuto para ser carregado.
O que me deixa deslumbrado é
- não parece estar relacionado com o conteúdo da página. Carregar a mesma página repetidamente funcionará 95% do tempo, com um clique, às vezes levando de 1.000% a 2000% mais tempo para carregar. carregar páginas diferentes repetidas vezes terá os mesmos resultados.
- a interface baseada na web enfrenta sem abrandar quando acessada de fora do escritório . isto é, só diminui quando usado atrás da nossa rede local.
- outras páginas da web parecem não ficarem lentas, mas parar a página com atraso e recarregá-la funcionará ok, o que me faz pensar que acontece por alguns segundos, bloqueando todos os cliques feitos durante esse limite, mas não aqueles feitos dois segundos depois
- o site usa jquery e jquery-ui, bem como algumas outras bibliotecas (jquery cookie master, xdate). A lentidão acontece se eles são carregados de nossos servidores ou diretamente de jquery e ajax.googleapis
enfrentando tudo isso, consultei profissionais de redes e, finalmente, nós trocamos nossos equipamentos de rede, agora usamos um firewall cisco asa-5505 e um switch de catalizador cisco gerenciado.
- antes, percebemos que pings para google.com às vezes chegavam ao tempo limite ou demoravam até 13000 ms para serem carregados, enquanto normalmente temos um ping em 20-30ms
- também notamos ao consultar nosso provedor que tínhamos até 800 gb de uploads por mês! nós gerenciamos fotos e arquivos pesados, mas 800gb se longe de um uso normal. Por algum tempo, achamos que o tráfego alto de upload da rede poderia impedir que a página carregasse recursos. Poderíamos ver com a história do nosso isp que a lentidão e os uploads massivos parecem acontecer mais ou menos ao mesmo tempo. Eu não posso dizer sem nenhuma dúvida o que aconteceu primeiro, eles parecem acontecer na mesma semana.
- obviamente tivemos vários erros de perda de pacotes
- Eu não posso dizer com certeza quais protocolos a lentidão afeta ou não. Não experimentei diretamente um download failling, e não tive nenhuma reclamação de usuários que o seu download falhou, mas o upload de arquivos para ftp através do netbeans será afetado. No entanto, os usuários usam
transmit
para transferir arquivos para nossos clientes e voltar, e eu não tenho reclamações sobre arquivos que não foram enviados corretamente ou clientes que receberam arquivos corrompidos.
infelizmente, só porque eu não tive reclamações não significa que isso não tenha acontecido, já que a comunicação com os usuários está um pouco tensa nesses momentos. Eu diria que a rede lenta está em causa [trocadilho intencional].
quando os especialistas que contratamos vieram instalar as novas peças na rede, eles fizeram algumas configurações e monitoramentos e agora, nosso ping volta ao normal, e os erros de perda de pacotes acontecem muito menos frequentemente, a ponto de pensarmos esses são apenas pacotes normais perdidos pela internet. Também do que podemos ver (faz apenas alguns dias), os uploads gigantescos pararam.
mas, 5% dos cliques ainda levam muito tempo para carregar.
Eu tentei depurar com a aba net do firebug para ver qual parte do site carregou devagar.
O próprio servidor responde entre 200 e 800 ms, dependendo da complexidade da página, o que parece ok. A maioria das imagens carrega ok, as bibliotecas também, mas quando a lentidão acontece, uma ou mais dessas imagens ou bibliotecas aguardarão para sempre antes de serem carregadas. nem sempre é a mesma biblioteca ou imagem
Meu pensamento é que, de alguma forma, ao carregar imagens e bibliotecas para exibir a página, a carga da rede impedirá que os recursos cheguem ao destino corretamente.
como posso definir o que está impedindo que um recurso específico, seja uma imagem ou uma biblioteca js, seja carregado?
Eu não tenho as habilidades técnicas para usar o wireshark ou outras ferramentas de rede avançadas (do meu humilde ponto de vista), mas vou aprender se preciso. Dito isto, monitorar neste momento parece irrelevante, eu não quero ver isso sendo lento, eu sei que é lento. Quero saber o que impede que os recursos cheguem a seus computadores de destino em nossa rede local .