O que esses números significam no syslog?

1

Eu estou tentando determinar porque o processo do servidor MySQL está sendo morto devido a falta de memória, então estou olhando para o sylog. Imediatamente antes da 'memória esgotada', vejo muitas linhas com números diferentes, mas não consigo descobrir o que elas significam. Por favor, alguém pode lançar alguma luz sobre o que eu estou olhando e se dá alguma pista para o meu problema.

Jun 29 15:21:33 serverpilottest kernel: [1320544.512442] [ 3158]  1000  3158        97824     2881     107     1172             0 php-fpm
Jun 29 15:21:33 serverpilottest kernel: [1320544.512443] [ 3160]  1000  3160     96548     1610     105     1194             0 php-fpm
Jun 29 15:21:33 serverpilottest kernel: [1320544.512445] [ 3161]  1000  3161    95737      806     104     1224             0 php-fpm
Jun 29 15:21:33 serverpilottest kernel: [1320544.512448] Out of memory: Kill process 1598 (mysqld) score 68 or sacrifice child

Qualquer ajuda muito apreciada.

    
por Geoff M 30.06.2015 / 10:42

2 respostas

3

Para o resultado, consulte esta resposta . Note que o mysql provavelmente não é a causa do problema. O Linux por padrão compromete a memória e quando os processos realmente começam a usá-la, ela precisa matar algum outro processo para obter alguma memória.

Frequentemente escolhe o que é grande e não é muito usado. Você pode proteger um processo de ser morto fazendo

echo -1000 > /proc/999/oom_score_adj

em que 999 é o id do processo. Veja man proc . O valor é -1000 a +1000 para influenciar o assassino (menos propenso a mais provável), com -1000 = nunca matar.

Você deve monitorar os tamanhos de memória do processo, por exemplo, com top (tipo M para classificar por memória).

A saída é do gerenciador de oom. php-fpm provavelmente faz parte do apache. Muitas vezes você pode configurar o apache para matar muitos segmentos reutilizados que cresceram demais; é uma escolha entre cgi mais rápido e menos memória sendo desperdiçada.

Você pode desativar temporariamente a memória de supercomprometimento com

sysctl vm.overcommit_memory=2

então é mais provável que você tenha o processo de monopolizar a memória, em vez de algum processo aleatório ser eliminado. Geralmente não é recomendado como um ambiente permanente.

    
por meuh 30.06.2015 / 13:56
1

Eles se parecem com o ID do processo, o ID do usuário e novamente o ID do processo, respectivamente. Não é possível ver o que está na última coluna, provavelmente alguma indicação de uso de memória.

    
por Jos 30.06.2015 / 12:32