o php e o mysqld processam a execução por horas. Isso é normal?

1

Eu tenho um servidor Jenkins, que periodicamente reconstrói um aplicativo PHP / mySQL. Toda vez que um novo código PHP é enviado, esse job descarta todas as tabelas no banco de dados correspondente e as recria com a estrutura especificada no instalador do PHP. Isso está funcionando bem na maior parte, embora ocasionalmente seja interrompido.

Não sei ao certo como os processos do mysqld / php são instanciados / destruídos. Eu noto que frequentemente tenho processos php que rodam por mais de uma hora, e eu constantemente tenho pelo menos um processo mysqld que roda por horas / dias. Dê uma olhada na minha top output:

Você não deveria ter um novo processo toda vez que uma página é solicitada? E esse processo não deve ser destruído depois que a página é entregue? Eu pensei que o PHP funciona dessa maneira, eu não tenho certeza sobre o mysqld. Eu tenho uma linha no php.ini que diz max_execution_time = 30 , por isso estou muito confuso como este processo de php poderia estar indo por mais de uma hora.

    
por Matt Korostoff 07.08.2015 / 17:21

1 resposta

2

A menos que você tenha seu trabalho Jenkins configurado para iniciar e parar o mysqld toda vez que ele rodar, você não o verá desaparecer da lista de processos. O mysqld é um daemon que é executado em segundo plano em todos os momentos, dependendo de como ele foi configurado e instalado. Uma instalação de pacote padrão permitirá que o serviço seja iniciado na inicialização.

Além disso, o mysqld não irá bifurcar novos processos. Todas as consultas serão tratadas por esse processo único.

Quanto ao processo PHP, o comando top não exibe TIME em tempo real (clock). Está relatando o tempo da CPU. Você pode ter um processo em execução por várias horas, mas ele utilizou apenas alguns minutos, ou mesmo segundos, de tempo de CPU. Além disso, ele está relatando o tempo de CPU como m: ss.t (minutos: segundos.désimos de segundo).

    
por 07.08.2015 / 22:37

Tags