Como posso determinar a fonte do relógio usada por uma instância do Amazon Elastic Compute Cloud (Amazon EC2) executando Linux e como posso alterá-la?
Breve descrição
Usando um cliente SSH, você pode encontrar a fonte do relógio atual, listar as fontes de relógio disponíveis ou alterar a fonte do relógio.
Observação: há muitas fontes de relógio disponíveis para instâncias de Hardware Virtual Machine (HVM), como Xen, Time Stamp Counter (TSC), High Precision Event Time (HPET) ou Advanced Configuration e Power Interface Specification (ACPI). Para instâncias do EC2 lançadas no AWS Xen Hypervisor, é uma prática recomendada usar a fonte de relógio tsc. Outros tipos de instância EC2, como C5 ou M5, usam o Hipervisor Nitro da AWS. A fonte de relógio recomendada para o Hipervisor Nitro da AWS é kvm-clock.
Observação: os processadores AWS Graviton2 usam arch_sys_counter como fonte do relógio.
Resolução
Para encontrar a fonte do relógio
Abra um cliente SSH em sua instância do EC2 e execute os comandos a seguir para encontrar as fontes de relógio atuais e disponíveis.
Para encontrar a fonte do relógio atualmente definida, liste o conteúdo do arquivo current_clocksource:
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
xen
Para listar as fontes de relógio disponíveis, liste o conteúdo do arquivo available_clocksource:
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
xen tsc hpet acpi_pm
Para definir a fonte do relógio atual com um valor diferente
1. Execute o bash como superusuário para substituir a current_clocksource:
sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'
2. Execute o comando dmesg para ver as mensagens do kernel:
dmesg | less
Se a substituição for bem-sucedida, esta mensagem será exibida:
clocksource: Switched to clocksource tsc
Observação: a reinicialização do sistema faz com que o kernel Linux redefina a fonte do relógio.
Para definir permanentemente a fonte do relógio
Para definir permanentemente a fonte do relógio, defina a fonte no carregador de inicialização do sistema:
1. Defina clocksource no parâmetro da linha de comando do kernel.
Por exemplo, se você usa grub2 e quer definir a fonte do relógio como “tsc”, abra /etc/default/grub em um editor. Em seguida, adicione clocksource=tsc tsc=reliable para a opção GRUB_CMDLINE_LINUX:
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200 clocksource=tsc tsc=reliable"
2. Gere o arquivo grub.cfg:
grub2-mkconfig -o /boot/grub2/grub.cfg
Informações relacionadas
Definir a hora para sua instância Linux