Nos últimos dois dias, construí um conjunto de servidores Apache. Cada servidor tem 4G de memória e usa o modo pré-fork. O número de conexões definidas no início era muito pequeno e demorava muito para responder às solicitações do usuário. , modifiquei o arquivo de configuração do Apache 2.0 httpd.conf:
Citar
# pré-garfo MPM
# StartServers: número de processos do servidor a serem iniciados
# MinSpareServers: número mínimo de processos do servidor que são mantidos sobressalentes
# MaxSpareServers: número máximo de processos do servidor que são mantidos sobressalentes
# MaxClients: número máximo de processos do servidor permitidos para iniciar
# MaxRequestsPerChild: número máximo de solicitações que um processo do servidor atende
StartServers 10
Servidores MinSpare 10
MaxSpareServers 15
Limite do Servidor 2000
MaxClientes 2000
Máximo de solicitações por criança 10.000
Verifique o número de processos httpd (ou seja, o número de solicitações simultâneas que o Apache pode manipular no modo pré-fork):
Comando Linux:
Exemplo de resultado de retorno:
1388
Indica que o Apache pode lidar com 1388 solicitações simultâneas. Este valor pode ser ajustado automaticamente pelo Apache de acordo com a carga. O valor máximo de cada servidor do meu grupo atingiu 2002.
Verifique o número de solicitações simultâneas do Apache e o status da conexão TCP:
Comando Linux:
Citar
netstat -n | awk '/^tcp/ {++S[$NF]} END {para (a em S) imprimir a, S[a]}'
(Esta afirmação vem de Recebi do Sr. Wang, Diretor Técnico do Departamento de Negócios da Comunidade Interativa da Sina, o que é muito bom)
Exemplo de resultado de retorno:
LAST_ACK 5
SYN_RECV30
ESTABELECIDO EM 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
SYN_RECV indica o número de solicitações que estão aguardando para serem processadas; ESTABLISHED indica o status normal da transmissão de dados; TIME_WAIT indica o número de solicitações que foram processadas e estão aguardando o término do tempo limite;
Em relação às mudanças no status do TCP, isso pode ser visto claramente na figura a seguir:
STATUS: DESCRIÇÃO FECHADO: Nenhuma conexão está ativa ou em andamento LISTEN: O servidor está aguardando chamadas recebidas SYN_RECV: Chegou uma solicitação de conexão, aguardando confirmação SYN_SENT: A aplicação foi iniciada, abrindo uma conexão ESTABLISHED: Status normal de transferência de dados FIN_WAIT1: O aplicativo diz que foi concluído FIN_WAIT2: O outro lado concordou em liberar ITMED_WAIT: Aguarde que todos os pacotes morram CLOSING: Ambos os lados tentam fechar ao mesmo tempo TIME_WAIT: O outro lado inicializou uma liberação LAST_ACK: Aguarde que todos os pacotes morram