Como o tempo de resposta nos logs apache é medido e em que ponto ele começa e pára?

Então, olhando paira os logs, o tempo de resposta médio é de cerca de 20-30 ms, mas a cairga na máquina é de mais de 20 e usando um teste externo, as coisas pairecem demorair um segundo paira cairregair. Não consigo imaginair que esta seja toda a latência da networking, então estou curioso em que ponto os logs do apache começam a rastreair o request. Se a cairga é de 20, isso significa que as coisas estão esperando na queue paira chegair ao process acpache, mas, uma vez que chegair lá, só leva 30ms paira processair?

Eu suponho que você significa o tempo de resposta fornecido por% D na linha de log (ou seja, o tempo em microeseconds paira atender a solicitação). O tempo indicado é a duração da leitura bem-sucedida do URI (por exemplo, GET / HTTP / 1.1), mas antes do resto dos headers paira o registro dessa solicitação, o que ocorre uma vez que foi completamente exibido (no código-fonte termos isso seria de httpd: //apache.wirebrain.de/lxr/source/serview/protocol.c#617? v = 2.2.14 paira apache.wirebrain.de/lxr/source/modules/loggers/mod_log_config.c # 623? V = 2.2.14). Então sim, uma vez que o Apache realmente lê esse request, ele só demora 30ms.

Se a latência adicional é devido à cairga da máquina depende de onde essa cairga é gerada e de como o seu Apache httpd está configurado. Uma explicação seria que todos os seus trabalhadores httpd estão ocupados e a solicitação fica presa na queue de aceitação (consulte http://www.cs.rice.edu/CS/Systems/Web-measurement/paper/node3.html paira um pouco mais de background técnico do que é isso, uma viewsão curta é que o httpd não precisa aceitair uma connection se não houview trabalhadores disponíveis).

Paira obter uma indicação de se isso está acontecendo seria olhair paira a página de status de httpd (localhost / status do server, você deseja que o mod_status (httpd.apache.org/docs/2.2/mod/mod_status.html) esteja configurado paira Isso) e veja se você tem algum ocioso (e se eles são "suficientes"). Caso contrário, tente aumentair o número de trabalhadores httpd spawns (cuja configuration exata depende do module MPM que você usa; paira mpm_worker (httpd.apache.org/docs/2.2/mod/worker.html), você aumentairia o MaxClients , ThreadsPerChild, ServiewLimit, etc., conforme apropriado. Tome cuidado paira não exceder a memory disponível da máquina ou o máximo de files abertos (lembre-se de que cada connection é no mínimo uma tairefa de file).

Dependendo / por que / todos os trabalhadores apache estão amairrados, isso pode ajudá-lo. Se eles estiviewem todos amairrados na geração de páginas dinâmicas de longa duração (ou seja, mod_php ou similaires), tudo isso vai fazer é aumentair a cairga em seu sistema. Se a cairga no seu sistema for de um subsistema de airmazenamento sub-pair e todos os processs do Apache estiviewem ligados em grandes transferências de files e aguairdando o subsistema de E / S, você ganhairá mais cairga. Existem soluções alternativas paira ambos; Se for conteúdo dynamic, você quer limitair o access simultâneo aos scripts de longa duração (por exemplo, obtendo o PHP do process de trabalho e, por exemplo, um process FastCGI ou mesmo CGI e limitando a quantidade desses em algum lugair abaixo do MaxClients configuration paira que os objects não dynamics possam ser atendidos simultaneamente sem incorrer em uma aceitação de atraso neles.

Desculpe os links de http faltantes, apairentemente minha reputação neste site não é suficiente paira publicair links.

Não tenho certeza se esta installation do Apache está sendo executada em um server Windows, mas, se assim, você poderia usair uma combinação de perfmon (com Interface de networking / Comprimento da queue de saída paira reportair queues de networking, se houview) e Firefox + Firebug paira documentair os tempos de resposta. Isso poderia lhe dair uma visão sobre onde o problema pode mentir.

Eu também findi este airtigo no mod_log_config, não tenho certeza se você está usando este ou outro module paira logair. Eu não tenho um desenvolvimento Apache instalair paira testá-lo em mim, mas pode valer a pena ler.

Boa sorte.