Vi uma hora estranha do sistema alterando o comportamento em alguns servidores (hardware): em /var/logs/syslog
, a data e hora anterior a cada mensagem de log às vezes muda para uma aleatória e volta ao normal na próxima mensagem, como a seguir:
Feb 22 2018 09:09:30 ...
Feb 22 2018 09:09:32 ...
Jan 13 2610 15:37:42 ...
Feb 22 2018 09:09:33 ...
Feb 22 2018 09:09:34 ...
Como no exemplo, a mudança repentina de data e hora pode chegar a centenas de anos.
Posso confirmar que as mensagens de registro com carimbos de data / hora estranhos não provêm de nenhum processo específico - isso pode acontecer aleatoriamente para todos.
E a duração entre duas alterações anormais de tempo varia entre alguns minutos e algumas horas (no entanto, eu suspeito que as alterações anormais de tempo possam ocorrer com mais frequência, mas muitas delas não são reveladas no syslog, pois ele não está gravando logs a cada segundo).
Além disso, como acontece em mais de um servidor, presumo que não seja um problema de hardware.
Mais informações sobre os servidores: são uma instalação openstack com um controlador e alguns nós de computação. Cada servidor tem o serviço NTP em execução. O controlador está configurado para levar tempo a partir de seu próprio relógio de hardware, e os servidores dos nós de computação sincronizam o tempo com o controlador. Observe que cada servidor tem alterações de horário anormais no seu próprio ritmo - parece que o "horário errado" não é sincronizado do controlador através do ntp.
Eu suspeitava que os sistemas convidados (máquinas virtuais) nos nós de computação pudessem afetar o tempo do sistema host. Mas isso não pode explicar por que o controlador tem o mesmo problema enquanto não está executando nenhuma máquina virtual.
Preciso de um método para detectar: quem mudou a hora do sistema e como isso acontece?
fonte
hwclock
? Se ela muda, nesse momento também ...Respostas:
Os aspectos relevantes são as versões do kernel e essas linhas desde o início do processo de inicialização:
YMMV e você pode não estar usando TSC ou PIT
AFAIK, este é um erro causado pelo fato de o relógio de pelo menos uma de suas CPUs estar fora de sincronia, provavelmente no seu caso, correndo muito rápido.
Deve ser fácil confirmar executando o seguinte:
que será executado
date
em cada CPU (supondo que você tenha até 8 núcleos / threads). Se meu palpite estiver correto, um de seus CPUs terá o tempo errado de forma consistente.Se for esse o caso, você deve primeiro tentar atualizar o kernel e, se isso não funcionar, mexa no parâmetro de inicialização clocksource (supondo que seja
x86-64
):Veja também a saída disso:
fonte
Parece que o relógio do hardware no servidor do controlador não é um recurso estável de informações sobre a hora. Você deve configurar seu controlador para sincronizar seu tipo com um relógio atômico mais confiável.
Este é o comando que você pode usar para atualizar seu relógio de hardware:
hwclock -s
Veja também:
fonte
copiado de: mensagens CRON atrasadas por muito tempo no syslog :
fonte
Você deve usar um servidor NTP externo sincronizado com uma fonte do estrato 1 ou 2 para evitar essas anomalias. Relógios de hardware não são confiáveis.
fonte