Usuários atualmente solicitando páginas

1

Eu escrevi este comando no meu shell para obter as solicitações atuais para o servidor

ps aux | grep php | wc -l

resultado: 68

então este comando retorna que 68 navegando atualmente alguns sites no meu servidor como eu entendo também eu escrevi

ps aux | grep httpd | wc -l

resultados 12

qual é o número correto para as pessoas que atualmente solicitam páginas no meu servidor? segunda pergunta posso obter as páginas solicitadas exatamente o que eles são ex. /home/user1/public_html/page.php obrigado antecipadamente

    
por Macnux 14.03.2015 / 00:02

1 resposta

0

Seus exemplos acima estão capturando quantos processos em execução do php e do httpd, que realmente não mostram suas conexões. Se você quiser apenas uma idéia aproximada das conexões, você pode tentar netstat -an | grep :80 | wc -l , que mostrará o número total de conexões (nos estados ativo e de espera) para a porta 80.

Para realmente obter métricas sobre solicitações de página, carga de servidor e rastreamento de usuário, você gostaria de ver algo como MRTG ou Cacti.

Resposta expandida:

O comando acima mostra todas as conexões para qualquer porta que você verificar, mas não diferencia entre as conexões ativas ou os outros status diferentes como TIME_WAIT e CLOSE_WAIT, nem o divide por host virtual, é simplesmente todas as conexões neste servidor para a porta X.

Se você executar o comando sem o canal wc -l, verá status diferentes, incluindo ESTABLISHED, TIME_WAIT e CLOSE_WAIT.

CLOSE_WAIT indica que o outro lado fechou a conexão. TIME_WAIT indica que o lado local fechou a conexão.

Essas conexões são mantidas por alguns minutos para garantir que todos os pacotes atrasados sejam correspondidos e entregues corretamente.

Quando uma solicitação do cliente chega em seu servidor da web (apache, nginx, iis, lighthttp etc) manipula a solicitação do cliente e carrega o arquivo. Se achar que ele contém código php, ele o transferirá para o interpretador php, que então se conecta a um banco de dados como postgres ou mysql, ou o devolve ao seu servidor que o entrega ao cliente.

Você verá que o seu servidor web e php são normalmente capazes de lidar com centenas de solicitações de clientes, então você pode ter mais de 100 conexões de clientes, e você pode ter 1-10 processos httpd, pois cada processo de trabalho está lidando com várias solicitações de clientes. / p>

O fato de você ter dito que netstat -an | grep :80 | wc -l devolveu 3500 resultados justifica a investigação. Por curiosidade, verifiquei que nosso servidor de produção de carga mais pesado atualmente impulsiona 1,1 Mbit de tráfego e descobriu que tinha apenas 141 conexões entre as diferentes portas nas quais o conteúdo do servidor está ativo, mas se o seu site tiver muito tráfego e não for baseado em sessões, é perfeitamente possível. / p>

Se você está realmente curioso para saber o que está acontecendo, somente o monitoramento pode informá-lo. O Cacti lhe dará uma boa idéia de largura de banda e carga do servidor, enquanto algo como Apache mod_status, MRTG ou Awstats lhe dará uma idéia melhor do tráfego para cada host virtual com falhas em visitantes únicos e métricas no tráfego da página.

Se você quiser apenas alguns dados superficiais, pode enviar um status para o status acima, ou seja, netstat -an | grep :80 | grep ESTABLISHED | wc -l mostrará uma contagem de conexões ESTABLISHED à porta 80, ignorando CLOSE_WAIT e TIME_WAIT. Mesmo que apenas lhe dê uma ideia aproximada de quantas pessoas estão se conectando ao seu servidor, para entender como as pessoas estão usando seu (s) site (s), você precisa seguir a rota do aplicativo externo.

Espero que isso ajude.

    
por 14.03.2015 / 01:06

Tags