带计时器的 Ubuntu systemd 服务速度很慢

带计时器的 Ubuntu systemd 服务速度很慢

我已经设置了一个 systemd 计时器来在 Ubuntu 22.04 上每分钟触发一个服务,但我遇到了一个问题,即服务的执行时间在第一次运行后显着增加。该服务只是使用 /bin/echo 记录一些文本。详细信息如下:

服务文件(testA.service):

[Unit]
Description=Sample Service A

[Service]
ExecStart=/bin/echo "Hello from Service A"

定时器文件(testA.timer):

[Unit]
Description=1min timer

[Timer]
OnCalendar=*-*-* *:*:00

[Install]
WantedBy=timers.target

观察到的行为:

该服务的第一次执行在 6 秒内完成。随后的执行需要 17 秒。

系统日志:

Feb 16 10:47:06 test systemd[923]: Started Sample Service A.
Feb 16 10:47:06 test echo[2740609]: Hello from Service A
Feb 16 10:48:17 test echo[2740652]: Hello from Service A
Feb 16 10:48:17 test systemd[923]: Started Sample Service A.
Feb 16 10:49:17 test systemd[923]: Started Sample Service A.
Feb 16 10:49:17 test echo[2740691]: Hello from Service A
Feb 16 10:50:17 test systemd[923]: Started Sample Service A.
Feb 16 10:50:17 test echo[2740731]: Hello from Service A

另一个测试甚至更慢 - 58 秒:

Feb 19 13:43:58 test systemd[917]: Started Sample Service A. 
Feb 19 13:43:58 test echo[119031]: Hello from Service A

系统详细信息:

Ubuntu 22.04.2 8 个处理器 8GB RAM 充足的磁盘空间 使用 htop 监控显示系统没有过载。

问题: 如何诊断和优化此 systemd 服务的执行时间以确保它始终快速完成?为什么第一次运行后执行时间会增加?

我已经检查了系统负载和磁盘空间等常见问题,但没有找到任何可以解释此行为的内容。

答案1

感谢@AlexD 的提示。添加选项AccuracySec=计时器的神奇之处在于每次运行都能在正确的时间运行服务。

相关内容