Delaying the release of slots after running workload

You can configure the amount of time that an unassigned service will remain idle with the application before releasing its corresponding slot to EGO (and terminating the service). An unassigned service is defined as a service not assigned to any session. If new workload arrives before the configured time elapses, these unassigned services can be used to handle the new workload. Once an unassigned service becomes assigned to a session again, its idle timer is reset.

After a session is suspended or killed, if other outstanding workload does not use the service, the service will wait for the slot release delay time to expire before the resources are released back to EGO.

The slot release delay time can be configured for the whole application or for an individual service. Configuration for a service overrides the application-level configuration.

Feature interactions

This section summarizes the behavior of the slot release delay feature when interacting with other Symphony features.

taskLowWaterMark

This feature only applies when taskLowWaterMark = 1.0 since a taskLowWaterMark value of 0 means that the SSM never releases resources voluntarily.

Exclusive host

When exclusive host is configured, an SSM must release all of the slots on the host back to EGO at once. All services on the host will be terminated (and the slots released) when all services are idle and the slot release delay time has expired for all of the services on that host.

Preloaded services

When an application is configured with preloaded services, the SSM tries to retain the configured number of slots (numOfSlotsForPreloadedServices). The slot release delay feature only applies to slots in excess of the number of preloaded slots.

Standby services

The slot release delay feature can be used in conjunction with standby services. The unassigned service will remain idle with the application for the configured duration before becoming a standby service. An unassigned service in this idle state is in a better state of readiness than a standby service since it is not necessary for the SSM to make a resource request and wait for EGO to allocate the resource back to the SSM.

Dynamic services

An SSM cannot release a partial slot back to EGO; it must release the whole slot. If partial slots are configured for a service, the SSM must wait to find at least one slot worth of services whose slot release delay time has expired before it can release the slot.

Configuring slot release delay

Slot release delay is configured by setting the delaySlotRelease attribute at the application or service level in the application profile. For example:

<Consumer applicationName="symping" consumerId="/SymTesting/Symping" delaySlotRelease="8" .../>
...
<Service default="true" delaySlotRelease="4" description=""... >