Linux / Comando uptime: tempo de atividade e carga média

uptime é um comando que mostra o horário atual, o tempo que o sistema está em execução desde a última inicialização, o número de usuários logados e a média de carga dos últimos 1, 5 e 15 minutos, tudo em uma única linha. É usado como ponto de partida para verificar rapidamente quando o servidor foi reiniciado ou para determinar se a carga é temporária ou persistente.

uptime

No entanto, a carga média não é o mesmo que a utilização da CPU (unidade central de processamento). Ela representa o número médio de tarefas aptas a executar ou aguardando entrada/saída (E/S) em um estado não interrompível, então para uma interpretação precisa, você precisa considerar o número de CPUs, bem como o status do disco e da rede.

Como ler os itens de saída do uptime

O formato típico de saída é o seguinte. Os horários e números reais variam de sistema para sistema.

14:32:10 up 12 days, 3:41, 2 users, load average: 0.42, 0.51, 0.48

O manual oficial do procps-ng uptime explica que esta linha única consiste no horário atual, tempo de atividade, número de usuários logados e a carga média de 1, 5 e 15 minutos.

Exemplo de saída Significado Pontos a serem observados ao interpretar
14:32:10 Hora atual do sistema Afetado pelo fuso horário e pelas configurações de sincronização de tempo.
up 12 days, 3:41 Tempo decorrido desde a última inicialização Em contêineres, o tempo de atividade do host pode ser exibido.
2 users Número de sessões de login Contagem baseada em registros de login, não em indivíduos únicos.
0.42, 0.51, 0.48 Média de carga de 1 minuto, 5 minutos, 15 minutos Não é uma percentagem normalizada pelo número de CPUs lógicas.

Interprete cada item em detalhes

Horário atual

O primeiro valor é a hora atual reconhecida pelo sistema. Se não coincidir com a hora do registro, verifique o fuso horário e o status de sincronização com timedatectl.

timedatectl status

Tempo de atividade do sistema

Após up, é exibido o tempo decorrido desde a última inicialização. Se for menor do que o esperado, verifique os logs do sistema e registros de inicialização para reinicializações não planejadas, erros de kernel, problemas de energia ou tarefas administrativas.

uptime -p
uptime -s

-p mostra o tempo decorrido em um formato legível, e -s mostra o horário em que o sistema foi iniciado. As opções suportadas podem variar dependendo da versão do procps-ng instalada na sua distribuição, portanto, verifique com uptime --help.

Número de sessões conectadas

O número de usuários é calculado com base nas sessões atualmente conectadas. Se o mesmo usuário fizer login várias vezes via SSH e console, isso pode ser contado como múltiplas sessões. Para ver quem está logado, use w ou who.

w
who

O que é carga média?

Intervalos de tempo dos três números

Os três valores da carga média representam a carga nos últimos 1 minuto, 5 minutos e 15 minutos, respectivamente. Não é uma média aritmética simples, mas uma média móvel ponderada exponencialmente que dá mais peso aos estados recentes, portanto, não mostra diretamente o número de tarefas em um momento específico.

O cálculo dos coeficientes exponenciais está definido no código de cálculo da carga média do kernel Linux.

  • Se o valor de 1 minuto for maior do que os valores de 5 e 15 minutos, isso pode indicar que a carga recente está aumentando.
  • Se o valor de 1 minuto for menor, isso pode indicar que a carga anteriormente alta está diminuindo.
  • Se todos os três valores forem igualmente altos, isso pode indicar que a carga está sustentada.

Compare com o número de CPUs disponíveis

A carga média não é normalizada pelo número de CPUs. Consulte primeiro as unidades de processamento disponíveis ao processo. Esse número pode ser menor que o total instalado, por causa de afinidade ou restrições do ambiente.

O manual de nproc do GNU Coreutils detalha a influência das variáveis de ambiente e das quotas de CPU de cgroups v2 nas versões que oferecem esse suporte.

nproc

Por exemplo, em um sistema com 4 CPUs lógicas, uma carga de 1,00 tem um significado diferente de 1,00 em um sistema com uma única CPU. Como uma regra prática simples, se a carga for semelhante ao número de CPUs lógicas, isso pode indicar que as tarefas estão usando uma parte significativa da capacidade de processamento, quando a carga é dominada por trabalho de CPU, mas isso sozinho não pode confirmar um gargalo.

Por que difere do uso da CPU

A carga média no Linux inclui não apenas as tarefas em execução ou esperando para serem executadas na CPU, mas também as tarefas esperando por E/S em um estado não interrompível. Portanto, mesmo que o uso da CPU seja baixo, a carga média pode aumentar devido a discos lentos ou armazenamento de rede.

Se a carga estiver alta, você precisa verificar o uso da CPU, a fila de execução, a espera de E/S, a memória e a swap juntos.

top
vmstat 1
iostat -xz 1
free -h

iostat geralmente está incluído no pacote sysstat e pode não estar instalado.

Opções mais usadas do uptime

Exiba o tempo de atividade em formato legível

uptime --pretty

-p ou --pretty exibem apenas o tempo de atividade em uma frase legível por humanos. Não é adequado para análise em scripts onde a frase pode ser afetada pelo idioma.

Consulte o horário de inicialização

uptime --since

-s ou --since exibem o horário de início do sistema no formato YYYY-MM-DD HH:MM:SS. Como esse valor é calculado com base no horário atual, verifique-o juntamente com os logs de inicialização em sistemas onde a configuração de horário foi alterada significativamente.

Consulte o contêiner e o formato bruto

O manual atual do procps-ng documenta a opção --container para solicitar o tempo de atividade do contêiner e a opção --raw para exibir o tempo atual e o tempo de atividade em segundos.

uptime --container
uptime --raw

Essas opções podem não estar disponíveis em distribuições mais antigas do procps-ng. Se o ambiente de execução do contêiner ou o kernel não fornecerem as informações relacionadas, os valores esperados podem não aparecer, então você deve verificar o suporte no ambiente real.

O que verificar quando a carga média estiver alta

Comece verificando as tendências e o número de CPUs

  1. Verifique se os valores de 1 minuto, 5 minutos e 15 minutos do uptime estão aumentando, diminuindo ou estáveis.
  2. Use nproc para verificar as unidades de processamento disponíveis ao processo.
  3. Use top ou ps para encontrar processos que estão usando muita CPU.
  4. Use vmstat e iostat para verificar a fila de execução e a espera de I/O.
  5. Use free para verificar a memória disponível e o uso de swap.

Evite concluir que há uma falha com base em um único número

Pode ser normal que a carga de 1 minuto aumente brevemente devido a tarefas curtas de compressão ou backups. Por outro lado, se o valor de 15 minutos continuar a subir e os tempos de resposta se deteriorarem, é provável que seja um gargalo persistente. Os limites devem ser definidos não apenas com base na contagem de CPUs, mas também considerando o tráfego usual, tipos de tarefas, desempenho de armazenamento e latência do serviço.

Se a observação regular for necessária, colete as métricas de carga média, CPU, E/S, memória e aplicação em conjunto, usando um sistema de monitoramento, em vez de depender de uma saída única do uptime.

Pontos a observar em contêineres e máquinas virtuais

O uptime de uma máquina virtual geralmente indica o tempo de execução do sistema operacional convidado. Como os contêineres compartilham o kernel do host, dependendo da ferramenta e do ambiente, o tempo de atividade do host pode ser exibido. Verifique o suporte ao --container no procps-ng mais recente, a configuração de namespace do runtime de contêiner e a fonte de dados do sistema de monitoramento juntos.

Além disso, os limites de CPU atribuídos a um contêiner e os valores relatados pelo nproc podem nem sempre corresponder à capacidade esperada pelo administrador. Verifique também as solicitações e limites de CPU do orquestrador de contêiner e as métricas de limitação.

Perguntas frequentes

Uma média de carga de 1,00 significa 100% de uso da CPU?

Não. A média de carga reflete o número de tarefas em estados aptos a executar ou de espera de E/S não interrompível e não é normalizada pelo número de CPUs. O uso da CPU deve ser verificado separadamente usando ferramentas como top ou mpstat.

Por que o tempo de atividade de repente diminuiu?

Na maioria dos casos, o sistema foi reiniciado. Verifique se foi uma atualização planejada ou se houve problemas de energia ou erros de kernel usando journalctl --list-boots, registros do sistema e registros operacionais. Dependendo das configurações de retenção de log, registros de inicializações anteriores podem não existir.

Por que o número de usuários conectados é diferente do número real de pessoas?

Se uma única pessoa abrir múltiplas sessões SSH ou de console, cada uma pode ser contada separadamente, e pode haver casos em que os registros de login apareçam anormais. Verifique o terminal e o horário de login usando w ou who.

Como posso verificar o tempo de atividade continuamente?

Você pode executá-lo em intervalos regulares usando watch.

watch -n 5 uptime

Se você precisar de tendências de longo prazo e alertas, use um sistema de monitoramento em vez de assistir à tela de saída.

Resumo

uptime é o primeiro passo para verificar rapidamente se o sistema reiniciou e a tendência de carga. As três cargas médias na saída representam intervalos de 1 minuto, 5 minutos e 15 minutos, não o uso da CPU ou percentuais.

Quando a carga média estiver alta, verifique o número de CPUs lógicas, o uso da CPU, a fila de execução, a espera de E/S, a memória disponível e o uso de swap em conjunto. A interpretação dos itens de memória é explicada em Usando o comando free (em inglês).