Eu tenho um site baseado em vídeo. Fica lento quando cerca de 1 mil usuários simultâneos assistem/baixam um vídeo.
Estou tentando depurá-lo para ver qual recurso está fraco para aumentá-lo. Executei htop
o comando para ver o uso de recursos, mas o servidor fica mais de 50% livre para CPU e RAM quando o carregamento da página é muito lento (nesse caso, uma página simples leva mais de 40 segundos para ser carregada)
É por isso que pensei que provavelmente fosse um problema de largura de banda. Agora tudo que estou tentando saber é o que acontece quando um arquivo de vídeo é transmitido/baixado por um cliente?
Observe que tenho tudo no mesmo servidor (backend/frontend/bancos de dados/arquivos de vídeo)
Responder1
Sua lógica está errada.
Se a CPU e a RAM ainda estiverem boas, existem DOIS possíveis problemas de limitação.
- Largura de banda
- OI
E ambos são totalmente triviais para verificar no lado do servidor. Faça isso.
Agora tudo que estou tentando saber é o que acontece quando um arquivo de vídeo é transmitido/baixado por um cliente?
Depende do que você entende por streaming, mas essencialmente ele captura dados da fonte e os encaminha para o destino. O que é essencialmente um problema de CPU, não usando muita CPU para iniciar. A menos que você tenha bastante armazenamento para cache (em RAM) configurado e, portanto, sendo usado - os dados vêm do armazenamento, seja lá o que você tiver. Geralmente a área que as pessoas ignoram e não se importam - e muitas vezes é o gargalo.
nesse caso, uma página simples leva mais de 40 segundos para ser carregada
O que indicaria que você atingiu um limite de rede BRUTAL ou um limite de IO. E considerando que você prefere não falar sobre IO, aposto que seu IO está sobrecarregado a níveis cômicos. A menos que você execute armazenamento SSD - geralmente em uma configuração RAID - seu orçamento de IO é comicamente baixo para uma rede de alta largura de banda - o suficiente para saturá-la com um fluxo, totalmente insuficiente em grande parte no momento em que suas cabeças de HDD precisam se mover.