Profile xxxxxxx, instance xxxxxxx, checkpoint 'free_space' - query timed out!Profile <Database Server>, failed to execute in scheduled time interval, delayed by <seconds> seconds and the subkey is on "XXDB.delay_alarm"
The sqlserver probe processes checkpoints for a profile **serially** (one at a time - no thread/concurrency setting exists at the profile level).
If any single checkpoint is expensive on a large instance, it can consume most or all of the polling interval budget by itself, leaving no time for the remaining checkpoints to complete that round - causing them to be skipped/delayed and QOS to stop populating. Two common offenders on instances with many databases are:
and
Either one, alone, can exceed a typical 15–30 min `sql_timeout`/interval on a ~30-database instance, hitting `SQL timeout [Nsec] reached, checkpoint skipped` on every cycle and
starving every checkpoint scheduled after it that round. This is **not** a "the probe can't handle many checkpoints" limitation, it's two specific heavy, per-database checkpoints not fitting the interval budget on large instances. All other checkpoints run cleanly once these two are handled separately.
Listed below is a complete explanation describing all of the sqlserver profile timeout fields in sqlserver profiles which can help eliminate any timeout alarms/query timeouts/failures:
1. Heartbeat - Defines the interval at which all profile checkpoint schedules will be tested and trigger eventual checkpoint execution.
This number should be a common denominator to all used check interval values.
The higher the value, the lower the profile overhead.
2. Check Interval - Default value for check interval in the profile.
This will be used if nothing else is defined in the checkpoint and overwrites the default checkpoint list setting.
3. Profile Timeout - Defines the maximum processing time for all checkpoints in the profile.
If this timeout is reached, the interval processing is finished and the probe waits for the next heartbeat to evaluate any checkpoint schedules. The alarm message is issued.
4. SQL Timeout - Every checkpoint query runs asynchronously.
In case the query reaches the SQL timeout, the checkpoint processing will be terminated and the next checkpoint will be started. An alarm is issued.
5. Delay Threshold - Timeout threshold for the profile delay alarm.
Example: If you are getting alarms for "Profile , failed to execute in the scheduled time interval, delayed by seconds", it means that your profile is taking more time to get executed then the described heartbeat interval. For example, if the profile is configured as follows:
You are getting the alarm because the profile would be getting executed say every 2 mins (1 min more than scheduled interval i.e Heartbeat), which is within the profile timeout limit, but more than "delay_threshold" limit.
***The query timed out! alarm comes when the SQL Timeout in the profile is less than how long the query takes so increase this value to some appropriate value.***
How to confirm the issue: