Uso do Syslog-ng 3.0% 95CPU?

3

Estou usando o syslog-ng 3.0 em minhas máquinas. Existe uma máquina que recebe logs de outras três máquinas. Mas ultimamente, quando eu uso o top para monitorar o uso da CPU (no principal), vejo syslog-ng usa appr.95% do cpu. Eu uso a 2ª inclusão de profundidade nos meus confs. O que poderia ser possível causar este problema?

Obrigado antecipadamente.

    
por mtndesign 04.09.2012 / 15:47

2 respostas

1

Você está fazendo a pergunta errada - precisa se concentrar no desempenho do sistema , não em um número em uma tela.
Se o seu sistema está funcionando normalmente, o desempenho atende aos seus requisitos e sua média de carga não é excessivamente alta (indicando uma longa espera pelo processo para obter a CPU quando eles pedem), você não tem problemas para resolver.

Se você está experimentando um problema de desempenho, isso é algo sobre o qual você deve estar se perguntando (o fato de sua CPU estar atrelada é incidental e seria útil ao tentar ajudá-lo a solucionar um problema de desempenho) .

Você não nos diz qual o número "Utilização da CPU" de que você está falando, mas isso realmente não importa - é um equívoco comum que "100% de utilização da CPU" é uma coisa Ruim. Não é.
Um computador com 100% de utilização da CPU, sem problemas de desempenho, não é um problema, a menos que você preveja um crescimento substancial que sobrecarregaria a largura de banda disponível da CPU no futuro. (dentro do tempo de vida do sistema).

    
por 04.09.2012 / 18:20
3

O syslog-ng usa muitos recursos da CPU, mas mostrar um nível consistente de 95% com uma única CPU parece alto. Eu tenho um sistema de CPU único w / < 1GB de memória executando syslog-ng 2.1.4 para três firewalls (em depuração) e 20 + servidores Linux (em alertar). Top mostra a% CPU como 93-83%.

Os filtros são muito flexíveis, mas não possuem otimização ou verificação lógica; O syslog-ng depende de você para isso. Tendo passado por uma situação semelhante, revisei todos os meus filtros quanto a erros de lógica e otimizei os pedidos. Limpeza e otimização reduziram minha utilização em mais de 10%. Eu sugiro:

  • Transmita apenas eventos que valham a gravação. Defina o nível de prioridade do cliente para aviso ou superior. Se você precisar de eventos de prioridade de informações de um daemon específico, como authpriv por exemplo, adicione uma linha /etc/syslog.conf para esse demônio. Menos eventos transmitidos significam menos utilização da CPU.
  • Coloque os filtros de hits mais frequentes primeiro , esp. se eles eliminarem / reduzirem os eventos registrados. Novamente, menos eventos processados significam menos utilização da CPU.
  • Executar filtros em série na diretiva de registro em vez de como condições AND em um único filtro. Inclui pode ser paralela verificando ambas as condições, apesar de uma falha.

Enquanto estiver analisando, verifique a espera de E / S do disco e verifique se está usando o protocolo UDP nativo (evite TCP). Espero que ajude.

    
por 04.09.2012 / 20:15

Tags