Processos do Apache httpd no estado lockf

2

Nós rodamos o Apache em um sistema FreeBSD, ele tem vários aplicativos web nele (Wordpress, Magento, PHP customizado). Conforme o tráfego aumenta, vemos cada vez mais processos httpd no status "lockf" (usando 'top'). A carga do servidor aumenta até que tenhamos que reiniciar o Apache.

Como eu entendo este estado, o Apache espera por um bloqueio de arquivo. Mas como podemos descobrir quais arquivos devem ser bloqueados / causar o gargalo? Sem essa informação, parece muito difícil lidar com o problema.

    
por Bachi 19.09.2012 / 16:22

1 resposta

1

É uma pergunta antiga, mas vou tentar;)

Essa situação parece "você tem um disco lento" - mas é apenas um sentimento sem saber mais.

Para responder à pergunta direta (encontrar os arquivos usados), faça o seguinte: Verifique se você tem lsof instalado which lsof , se não instalado instale-o por pkg (_install) (não sei qual versão do FreeBSD você tem).

Em seguida, pesquise seus processos http por top ou ps e use lsof para ver quais arquivos são usados com lsof -p PROCNUMBER Isso fornece uma tabela de TODOS os arquivos / diretórios / canais etc. usados por este processo.

Isso agora pode ser examinado. Dê uma olhada em man lsof , é muito longo e tem muito poder.

Sem saber o resultado do que você encontra, tente reduzir ou até mesmo desabilitar o log e ver se isso ajuda. Usar a configuração incorreta do registro e muito tráfego poderia matar até máquinas grandes. E uma última nota: Se você tem uma boa máquina executando tal configuração que você descreveu, o maior problema é a unidade de E / S em muitos casos. Dual Xeon Superbig-CPU não tem significado se você ainda tiver uma unidade IDE;)

Um recurso final que pode ser interessante: link

    
por 20.12.2013 / 16:38