El anuncio de systemd-timesyncd en el archivo systemd NEWS hace un buen trabajo al explicar las diferencias de esta herramienta en comparación con Chrony y herramientas similares. (énfasis mío):
Se ha agregado un nuevo demonio "systemd-timesyncd" para sincronizar el reloj del sistema a través de la red. Implementa un cliente SNTP . A diferencia de las implementaciones de NTP como chrony o el servidor de referencia NTP, esto solo implementa un lado del cliente y no se molesta con la complejidad completa de NTP, centrándose solo en consultar el tiempo desde un servidor remoto y sincronizar el reloj local . A menos que tenga la intención de servir NTP a clientes en red o desee conectarse a relojes de hardware locales, este simple cliente NTP debería ser más que apropiado para la mayoría de las instalaciones. [...]
Esta configuración es un caso de uso común para la mayoría de los hosts en una flota de servidores. Por lo general, se sincronizarán desde servidores NTP locales, que a su vez se sincronizarán desde múltiples fuentes, posiblemente incluyendo hardware. systemd-timesyncd intenta proporcionar una solución fácil de usar para ese caso de uso común.
Tratando de abordar sus preguntas específicas:
¿Cuáles son las diferencias en el mundo real entre los dos en términos de precisión?
Creo que puede obtener una mayor precisión al obtener datos de sincronización de múltiples fuentes, lo que específicamente no es un caso de uso compatible para systemd-timesyncd. Pero cuando lo usa para obtener datos de sincronización de servidores NTP centrales conectados a su red interna confiable, el uso de múltiples fuentes no es realmente tan relevante y obtiene una buena precisión de una sola fuente.
Si está sincronizando su servidor desde un servidor de confianza en una red local y en el mismo centro de datos , la diferencia de precisión entre NTP y SNTP será prácticamente inexistente. NTP puede tener en cuenta RTT y reducir el tiempo, pero eso no es tan beneficioso cuando su RTT es realmente pequeño, como es el caso de una red local rápida y una máquina cercana. Tampoco necesita múltiples fuentes si puede confiar en la que está utilizando.
¿Cuáles son las diferencias en eficiencia?
Obtener la sincronización de una sola fuente es mucho más simple que obtenerla de múltiples fuentes, ya que no tiene que tomar decisiones sobre qué fuentes son mejores que otras y posiblemente combinar información de múltiples fuentes. Los algoritmos son mucho más simples y requerirán menos carga de CPU para el caso simple.
¿Cuáles son las necesidades de sincronización de tiempo "no simple", también conocidas como casos de uso para crony como cliente NTP?
Eso se aborda en la cita anterior, pero en cualquier caso estos son casos de uso para Chrony que no están cubiertos por systemd-timesyncd:
- ejecutar el servidor NTP (para que otros hosts puedan usar este host como fuente para la sincronización);
- obtener información de sincronización NTP de múltiples fuentes (lo cual es importante para que los hosts obtengan esa información de servidores públicos en Internet); y
- obtener información de sincronización del reloj local, que generalmente involucra hardware especializado como dispositivos GPS que pueden obtener información precisa de la hora de los satélites.
Estos casos de uso requieren Chrony o ntpd o similar.