
# The TTL Of Kyuubi Engines
For a multi-tenant cluster, its overall resource utilization is a KPI that measures how effectively its resource is utilized against its availability or capacity.
To better improve the overall resource utilization of the cluster,
- At cluster layer, we leverage the capabilities, such as [Capacity Scheduler](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html), of resource scheduling management services, such as YARN and K8s.
- At application layer, we'd be better to acquire and release resources according to the real workloads.
## The Big Contributors Of Resource Waste
- The time to wait for the resource to be allocated, such as the scheduling delay, the start/stop cost.
- A longer time-to-live(TTL) for allocated resources can significantly reduce such time costs within an application.
- The time being idle of the resource.
- A shorter time to live for allocated resources can make all resources in rapid turnarounds across applications.
## TTL Types In Kyuubi Engines
- Engine TTL
- The TTL of engines describes how long an engine will be cached after all sessions are disconnected.
- Executor TTL
- The TTL of the executor describes how long an executor will be cached when no tasks come.
## Configurations
### Engine TTL
| Key | Default | Meaning | Type | Since |
|----------------------------------------------|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|--------------------------------------|
| kyuubi\.session\.engine
\.check\.interval | PT5M
| The check interval for engine timeout
| duration
| 1.0.0
|
| kyuubi\.session\.engine
\.idle\.timeout | PT30M
| engine timeout, the engine will self-terminate when it's not accessed for this duration. 0 or negative means not to self-terminate.
| duration
| 1.0.0
|
The above two configurations can be used together to set the TTL of engines.
These configurations are user-facing and able to use in JDBC urls.
Note that, for [connection](engine_share_level.html#connection) share level engines that will be terminated at once when the connection is disconnected, these configurations not necessarily work in this case.
### Executor TTL
Executor TTL is part of functionality of Apache Spark's [Dynamic Resource Allocation](./spark/dynamic_allocation.md).