Ubuntu 22.04では、1分ごとにサービスをトリガーするようにシステムタイマーを設定しましたが、最初の実行後にサービスの実行時間が大幅に増加するという問題が発生します。このサービスは/ 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で監視すると、システムが過負荷になっていないことがわかります。
質問: このシステムサービスの実行時間を診断して最適化し、常に迅速に完了するにはどうすればよいですか?最初の実行後に実行時間が増加するのはなぜですか?
システムのロードやディスク容量などの一般的な問題を確認しましたが、この動作を説明するエントリが見つかりませんでした。
答え1
ヒントをありがとう@AlexDに感謝します。次へ追加AccuracySec=
オプションタイマーの魔法は、毎回正確な時間にサービスを実行することです。