Consul-agent health checks with script seems delayed

Hi. I use consul to monitor some service status.
Here is service health check script.

  "ID": "serviceA",
  "Name": "serviceA",
  "Address": "",
  "Port": 443,
  "Tags": [
  "EnableTagOverride": false,
  "Check": {
    "Name": "serviceA",
    "args" : ["./", "--some flags",,,,,,,, ],
    "tls_skip_verify": true,
    "Interval": "10s",
    "Timeout": "10s"

In most cases, it works normally. But sometimes(less then 10 times a day), this error occured.

    2023/01/18 05:53:07 [WARN] agent: Check "serviceA": Timed out (10s) running check is quite simple. it create bucket in aws s3, then put/get/delete object using python boto3. In most cases, it finished within 2 seconds. According to the log of script, when timeout occurs, the script seems to start to run with some delay. Although the interval is set to 10 seconds, it appears to start about 5 seconds later than expected.
This is time when the script started:(it leaves the start time as log.)

1. 22:51:00
2. 22:51:11
3. 22:51:20
4. 22:51:35  (timed out at 22:51:41)
5. 22:51:51
6. 22:52:01
7. 22:52:12 script seems to start every 10 seconds. Considering the timeout (22:51:41), it seems that the 4th check began around 22:51:31, which is 10s after in the 3rd check. but started at 22:51:35, with 4s delay. I wonder what makes this delay, which consume half of the timeout. any idea?

Here is my consul server & agent version

./consul --version
Consul v1.4.0