Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
instalacao_do_servidor_de_medicao_de_velocidade [31/01/2020 23:25] superuser |
instalacao_do_servidor_de_medicao_de_velocidade [22/01/2024 20:35] superuser |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
===== Velocidades de Download Homologadas por Modelo ===== | ===== Velocidades de Download Homologadas por Modelo ===== | ||
- | A medição de velocidade atualmente possui uma limitação de velocidade para cada modelo. Como nossa medição é feita direto no roteador, o impacto de rodar um software para medir acaba reduzindo o resultado máximo da medição. Medições convencionais como o Speedtest e Fast.com podem passar dos limites aqui homologados, pois o software roda em um dispositivo conectado na rede, não no roteador. Confira abaixo a lista de velocidades máximas homologadas para nossa medição: | ||
^ Modelo ^ Velocidade Máxima ^ | ^ Modelo ^ Velocidade Máxima ^ | ||
| Greatek GWR-1200AC | 200 Mbps | | | Greatek GWR-1200AC | 200 Mbps | | ||
| Intelbras Action RG1200AC | 200 Mbps | | | Intelbras Action RG1200AC | 200 Mbps | | ||
+ | | Intelbras Action GF1200AC | 200 Mbps | | ||
| Multilaser RE708 | 200 Mbps | | | Multilaser RE708 | 200 Mbps | | ||
+ | | TP-Link EC220-G5 | 350 Mbps | | ||
| TP-Link Archer C5 | 300 Mbps | | | TP-Link Archer C5 | 300 Mbps | | ||
+ | | TP-Link Archer C21 | 300 Mbps | | ||
+ | | TP-Link Archer C7 | 300 Mbps | | ||
| TP-Link WDR3600 | 150 Mbps | | | TP-Link WDR3600 | 150 Mbps | | ||
| TP-Link WDR4300 | 150 Mbps | | | TP-Link WDR4300 | 150 Mbps | | ||
Linha 13: | Linha 16: | ||
| Demais modelos | 100 Mbps | | | Demais modelos | 100 Mbps | | ||
- | Os seguintes modelos não são compatíveis atualmente com a medição de velocidade: | + | ^ Modelos TR-069 ^ Velocidade Máxima ^ |
+ | | ZTE H199 | 550 Mbps | | ||
+ | | ZTE H198 | 100 Mbps | | ||
+ | | TP-Link EC220-G5 | 230 Mbps | | ||
+ | | FastWireless FW323DAC | 250 Mbps | | ||
+ | | Huawei EG8145V5 | 1000 Mbps | | ||
+ | | Huawei EG8145V5-V2 | 1000 Mbps | | ||
+ | | Huawei EG8245Q2 | 250 Mbps | | ||
+ | | Huawei EG8145X6 | 700 Mbps | | ||
+ | | Huawei HG8121H | 150 Mbps | | ||
+ | | D-Link DIR-842 | 180 Mbps | | ||
+ | | D-Link DIR-841 | 180 Mbps | | ||
+ | | Greatek Stavix | 250 Mbps | | ||
+ | | Greatek GWR1200 | 300 Mbps | | ||
+ | | Unee MP-G421R | 300 Mbps | | ||
+ | | Intelbras WiFiber 121AC | 350 Mbps | | ||
+ | | Tenda HG9 | 350 Mbps | | ||
+ | | Nokia Beacon 1 HA-020W-B | 800 Mbps | | ||
+ | | Nokia G-2425G-A | 850 Mbps | | ||
- | * Greatek GRW-300 | + | |
- | * Multilaser RE172 | + | === Por que existem essas limitações de banda diferentes para cada modelo? === |
+ | |||
+ | A medição de velocidade atualmente possui uma limitação de velocidade para cada modelo. O teste de velocidade feito diretamente nos roteadores medirá no máximo as velocidades na tabela abaixo. Para medir velocidades maiores, use um dos medidores convencionais como o Speedtest e Fast.com. | ||
+ | |||
+ | Porque testes de velocidade exigem muito processamento, e as CPUs existentes nos roteadores são limitadas comparadas a de celulares e computadores. Lembre-se que o roteamento de pacotes nesses roteadores utiliza pouca CPU, e portanto medições feitas por dispositivos na rede podem conseguir resultados maiores. | ||
===== Vídeo sobre o Teste de Velocidade ===== | ===== Vídeo sobre o Teste de Velocidade ===== | ||
Linha 24: | Linha 49: | ||
===== Configuração do Servidor ===== | ===== Configuração do Servidor ===== | ||
- | === Sistemas operacionais testados: CentOS 7, Ubuntu 16.04 e 18.04 === | + | === Sistemas operacionais testados: === |
- | === Requisitos de hardware: Placa de rede gigabit. É recomendado que nenhum outro serviço que utilize a rede esteja rodando na máquina. === | + | |
+ | Ubuntu 20.04,22.04 Debian 10 e 11 | ||
+ | |||
+ | === Requisitos de hardware: === | ||
+ | |||
+ | Placa de rede gigabit. Contudo, caso ofereça planos de 500 Mbps, ou mais, é recomendado que tenha uma interface 10 Gbps. | ||
+ | É recomendado que nenhum outro serviço que utilize a rede esteja rodando na máquina. Recomendamos pelo menos 500MB de RAM livres para o processo do Nginx que será mantido em execução. Recomendamos ao menos 4 núcleos de CPU para download simultâneo dos arquivos durante o teste de velocidade. Ao menos 500MB de espaço devem estar disponíveis para armazenamento dos arquivos de teste que serão baixados durante o teste de velocidade. | ||
**Atenção! Verifique se o link de rede para o servidor está configurado para gigabit tanto no downlink quanto no uplink!** | **Atenção! Verifique se o link de rede para o servidor está configurado para gigabit tanto no downlink quanto no uplink!** | ||
- Atualizar lista de repositórios através do comando: <code> | - Atualizar lista de repositórios através do comando: <code> | ||
Linha 40: | Linha 72: | ||
</code> | </code> | ||
- Abra o arquivo de configuração do Nginx com o comando: <code>nano /etc/nginx/nginx.conf</code> | - Abra o arquivo de configuração do Nginx com o comando: <code>nano /etc/nginx/nginx.conf</code> | ||
- | - Se você já possui um serviço configurado no Nginx, edite o seu arquivo atual para incluir as configurações abaixo. | + | - Se você já possui um serviço configurado no Nginx, edite o seu arquivo atual para incluir as configurações abaixo. Ficar atento ao substituir o usuário do nginx "User nginx", porque para cada distribuição o nome do usuário será diferente. Por exemplo no Ubuntu18 por padrão o usuário criado é "www-data". |
- Lembramos que por motivos de performance de rede, não recomendamos que outros serviços estejam configurados na mesma máquina. | - Lembramos que por motivos de performance de rede, não recomendamos que outros serviços estejam configurados na mesma máquina. | ||
- Configure o Nginx para receber requisições HTTP editando o arquivo aberto: <code> | - Configure o Nginx para receber requisições HTTP editando o arquivo aberto: <code> | ||
Linha 64: | Linha 96: | ||
access_log /var/log/nginx/access.log; | access_log /var/log/nginx/access.log; | ||
error_log /var/log/nginx/error.log; | error_log /var/log/nginx/error.log; | ||
- | |||
- | limit_req_zone $request_uri zone=measure:1m rate=3r/m; | ||
include /etc/nginx/conf.d/*.conf; | include /etc/nginx/conf.d/*.conf; | ||
Linha 82: | Linha 112: | ||
listen 80; | listen 80; | ||
autoindex on; | autoindex on; | ||
+ | client_max_body_size 2g; | ||
location /measure { | location /measure { | ||
alias /etc/nginx/flash-measure-data/; | alias /etc/nginx/flash-measure-data/; | ||
sendfile_max_chunk 1m; | sendfile_max_chunk 1m; | ||
- | limit_req zone=measure burst=2 nodelay; | + | } |
+ | location /measure/tr069 { | ||
+ | alias /etc/nginx/flash-measure-data/tr069/; | ||
+ | sendfile_max_chunk 1m; | ||
+ | } | ||
+ | location ~ "/upload/([0-9a-zA-Z-._]*)$" { | ||
+ | dav_methods PUT; | ||
+ | client_body_temp_path /tmp/incoming; | ||
+ | client_body_in_file_only off; | ||
+ | alias /tmp/incoming/$1; | ||
+ | create_full_put_path on; | ||
+ | dav_access group:rw all:r; | ||
+ | client_body_buffer_size 100m; | ||
} | } | ||
location / { | location / { | ||
Linha 100: | Linha 143: | ||
sudo mkdir /etc/nginx/flash-measure-data | sudo mkdir /etc/nginx/flash-measure-data | ||
for i in $(seq 1 3); do sudo dd if=/dev/urandom of=/etc/nginx/flash-measure-data/file$i.bin bs=1M count=50; done | for i in $(seq 1 3); do sudo dd if=/dev/urandom of=/etc/nginx/flash-measure-data/file$i.bin bs=1M count=50; done | ||
+ | </code> | ||
+ | - Para gerar os arquivos de medição que serão utilizados nos dispositivos TR-069 utilize os comandos: <code> | ||
+ | sudo mkdir /etc/nginx/flash-measure-data/tr069 | ||
+ | fileSizes=(512 1920 6400 19200 32000 64000 192000 320000 448000 640000 1920000) | ||
+ | for i in ${fileSizes[@]}; do sudo dd if=/dev/urandom of=/etc/nginx/flash-measure-data/tr069/file_"$i"KB.bin bs=1K count=$i; done | ||
</code> | </code> | ||
- (Somente para CentOS) Habilite o serviço Nginx através do comando: <code>sudo systemctl enable nginx</code> | - (Somente para CentOS) Habilite o serviço Nginx através do comando: <code>sudo systemctl enable nginx</code> | ||
Linha 106: | Linha 154: | ||
(CentOS) sudo systemctl start nginx | (CentOS) sudo systemctl start nginx | ||
</code> | </code> | ||
- | - Teste se o servidor está funcionando acessando em qualquer navegador: <code>http://<<ip do servidor>>/measure</code> | + | - Teste se o servidor está funcionando acessando em qualquer navegador: <code> wget http://<<ip do servidor>>/measure</code> |
- | - Se você alterou a porta do serviço no passo 7, não se esqueça de incluir a porta na URL:<code>http://<<ip do servidor>>:<<porta configurada>>/measure</code> | + | - Se você alterou a porta do serviço no passo 7, não se esqueça de incluir a porta na URL:<code> wget http://<<ip do servidor>>:<<porta configurada>>/measure</code> |
- Você deverá ver uma listagem de arquivos contendo 3 arquivos de 50MB cada: file1.bin, file2.bin, file3.bin | - Você deverá ver uma listagem de arquivos contendo 3 arquivos de 50MB cada: file1.bin, file2.bin, file3.bin | ||
+ | - Confira também se os arquivos para o teste de velocidade em dispositivos TR-069 foram gerados em /measure/tr069. Você deverá ver uma listagem de arquivos contendo 10 arquivos de x KB cada nomeados como file_xKB.bin, onde x são os valores de 512 a 640000 listados no passo 9. | ||
+ | - Caso os arquivos não sejam exibidos com sucesso, por favor excluir o link para a pasta "/etc/nginx/sites-enabled/default" através do comando abaixo. Por favor antes de excluir, validar se esta configuração está está sendo utilizado por outro serviço.<code>rm -f /etc/nginx/sites-enabled/default</code> | ||
+ | |||
+ | ===== Atualização do Servidor para testes de velocidade em dispositivos TR-069 ===== | ||
+ | Se você já tem um servidor para teste de velocidade configurado, então precisará de poucos passos para habilitar o teste de velocidade para dispositivos TR-069. | ||
+ | - Atualize o Nginx removendo a limitação de conexões para o melhor funcionamento das medições em dispositivos TR-069. Remova a linha: <code>limit_req_zone $request_uri zone=measure:1m rate=3r/m;</code> | ||
+ | - Atualize o arquivo de configuração do servidor com a nova rota para os arquivos direcionados ao teste para dispositivos TR-069 com o comando: <code>nano /etc/nginx/sites-available/measure</code> | ||
+ | - Adicione o trecho relacionado à "location /measure/tr069": <code> | ||
+ | server { | ||
+ | listen 80; | ||
+ | autoindex on; | ||
+ | client_max_body_size 2g; | ||
+ | location /measure { | ||
+ | alias /etc/nginx/flash-measure-data/; | ||
+ | sendfile_max_chunk 1m; | ||
+ | } | ||
+ | location /measure/tr069 { | ||
+ | alias /etc/nginx/flash-measure-data/tr069/; | ||
+ | sendfile_max_chunk 1m; | ||
+ | } | ||
+ | location ~ "/upload/([0-9a-zA-Z-._]*)$" { | ||
+ | dav_methods PUT; | ||
+ | client_body_temp_path /tmp/incoming; | ||
+ | client_body_in_file_only off; | ||
+ | alias /tmp/incoming/$1; | ||
+ | create_full_put_path on; | ||
+ | dav_access group:rw all:r; | ||
+ | client_body_buffer_size 100m; | ||
+ | } | ||
+ | location / { | ||
+ | return 403; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | - Você pode substituir o valor da variável "listen" por outra porta que não seja a 80. | ||
+ | - Se você alterar a porta utilizada, lembre-se de configurar o seu firewall para que seus roteadores consigam acessar o servidor! | ||
+ | - Não se esqueça de inserir um ; no final da linha caso altere a porta! Exemplo:<code> | ||
+ | listen 25752; | ||
+ | </code> | ||
+ | - Gere os arquivos de medição que serão utilizados nos dispositivos TR-069. Utilize os comandos: <code> | ||
+ | sudo mkdir /etc/nginx/flash-measure-data/tr069 | ||
+ | fileSizes=(512 1920 6400 19200 32000 64000 192000 320000 448000 640000 1920000) | ||
+ | for i in ${fileSizes[@]}; do sudo dd if=/dev/urandom of=/etc/nginx/flash-measure-data/tr069/file_"$i"KB.bin bs=1K count=$i; done | ||
+ | </code> | ||
+ | - Recarregue o serviço Nginx através do comando: <code> | ||
+ | (Ubuntu) sudo service nginx restart | ||
+ | (CentOS) sudo systemctl restart nginx | ||
+ | </code> | ||
+ | - Teste se o servidor está funcionando acessando em qualquer navegador: <code> wget http://<<ip do servidor>>/measure/tr069</code> | ||
+ | - Se você alterou a porta do serviço no passo 7, não se esqueça de incluir a porta na URL:<code> wget http://<<ip do servidor>>:<<porta configurada>>/measure/tr069</code> | ||
+ | - Você deverá ver uma listagem de arquivos contendo 10 arquivos de x KB cada nomeados como file_xKB.bin, onde x são os valores de 512 a 640000 listados no passo 5. | ||
+ | - Caso os arquivos não sejam exibidos com sucesso, por favor excluir o link para a pasta "/etc/nginx/sites-enabled/default" através do comando abaixo. Por favor antes de excluir, validar se esta configuração está está sendo utilizado por outro serviço.<code>rm -f /etc/nginx/sites-enabled/default</code> | ||
+ | |||
===== Realizando um Teste de Velocidade ===== | ===== Realizando um Teste de Velocidade ===== |