log primeiras 5 linhas da saída superior - o servidor congela

2

Alguém poderia dar uma dica sobre como registrar as primeiras 5 linhas da saída principal? Eu estava pensando em grep, mas não sei como escolher linhas.

Eu preciso entender. O que congela servidor às vezes. Talvez existam algumas ferramentas para isso?

Obrigado;)

    
por Somebody 05.08.2011 / 13:29

3 respostas

2

Você pode fazer o que você solicitou:

~$ top -n1 | head -5

Além da lista de comandos de Janne e dos conselhos do symcbean para verificar seus registros do sistema, sugiro em cima :

   ...
   It  shows  the  occupation  of  the  most  critical  hardware
   resources (from a performance point of view) on system level, i.e. cpu,
   memory, disk and network.
   It  also  shows  which processes are responsible for the indicated load
   with respect to cpu- and memory load on process level.   Disk  load  is
   shown if per process "storage accounting" is active in the kernel or if
   the kernel patch 'cnt' has been installed.  Network load is only  shown
   per process if the kernel patch 'cnt' has been installed...

   [...]

   Every  interval  (default:  10  seconds) information is shown about the
   resource occupation on system level (cpu,  memory,  disks  and  network
   layers),  followed by a list of processes which have been active during
   the last interval (note that all processes that were  unchanged  during
   the  last interval are not shown, unless the key 'a' has been pressed).
   If the list of active processes does not entirely fit  on  the  screen,
   only the top of the list is shown (sorted in order of activity).

Além disso, no topo, você pode verificar de volta no tempo qual era a situação do seu servidor, pois ele armazena esses dados em seus arquivos de log. Por exemplo, eu tenho o seguinte trecho de código em um script que é iniciado quando um servidor loadavg passa um limite arbitrário. As informações sobre o topo e outras informações relacionadas ao sistema são enviadas por e-mail para minha conta:

atop -r /var/log/atop.log -M -b "$(date +'%H:%M' -d '30 minutes ago')" -e "$(date -d now +'%H:%M')"

Basicamente eu recebo um relatório do estado atual do servidor e o que estava acontecendo nele nos últimos 30 minutos (com informações detalhadas de cada intervalo de 10 minutos)

    
por 05.08.2011 / 15:36
0

Primeiro, é improvável que o congelamento do servidor seja devido a processos do usuário. Em segundo lugar, mesmo que fosse esse o caso, por que seria um dos 5 principais causadores do problema?

Se você já verificou seus logs e não encontrou nada, tente implementar um watchdog para gravar uma pulsação nos logs - e verifique se o sistema realmente está congelando (ao invés de ser observado para pausar quando acessado remotamente). / p>

Quanto tempo dura o congelamento? Quão frequente? Há um pontinho na carga quando volta? Onde você está observando esses congelamentos? Esta é uma máquina dedicada ou virtual?

    
por 05.08.2011 / 13:37
0

top | head -n 12 >>your_file.txt faria isso, mas com ressalvas: ele salvaria todo o controle e os caracteres ANSI também, então navegar na saída com less etc não seria legal. E, para ser honesto, não é a melhor maneira de entender o processo rebelde.

Para tendências gerais sobre suas ferramentas de desempenho de servidor como snmp + mrtg, o Cacti ou o Munin podem ser muito úteis - eles representam graficamente o uso da CPU, o uso da memória e assim por diante. Para a linha de comando, use sysstat package com seu daemon sadc e sar reporting utility também pode oferecer uma visão sobre como está o seu servidor. O pacote psacct adiciona a contabilidade do BSD e pode fornecer estatísticas gerais sobre o tempo gasto por usuário / processo.

Para visualização em tempo real , mantenha-se conectado ao seu servidor e siga coisas como iostat -x 1 , vmstat e top .

Considere configurar um servidor syslog separado Se você tiver hardware reserva (ou um servidor syslog central já instalado), use-o! Você acabou de configurar seu servidor para enviar seus syslogs e outros logs para o seu servidor syslog. Às vezes, esses congelamentos (se causados por um kernel panic) podem acontecer para que seu servidor não consiga gravar informações em disco, mas é capaz de enviar suas últimas palavras para o servidor syslog.

Teste seu servidor com memtest86 se você puder deixar seu servidor offline por uma noite ou mais, deixe-o executar memtest86 para ver se há RAM defeituosa ou qualquer outra coisa.

Desculpe, não posso ser mais útil do que isso, pois você não nos contou muito sobre o seu problema.

    
por 05.08.2011 / 13:41

Tags