Log Semaphore Contention

A semaphore is a simple internal locking mechanism that prevents a second task from accessing the data structure currently in use. Adaptive Server uses semaphores to protect the user log caches, since more than one process can access the records of a ULC and force a flush.

“Log Semaphore Contention” reports the number of times a task was switched out because it needed to acquire the transaction log semaphore held by another task. This applies to SMP systems only.

If log semaphore contention is high, see “Transaction Management”.

Check disk queuing on the disk used by the transaction log. See “Disk I/O Management”.

Also see “Engine Utilization (Tick %)”. If engine utilization reports a low value, and response time is within acceptable limits, consider reducing the number of engines. Running with fewer engines reduces contention by decreasing the number of tasks trying to access the log simultaneously.

High log semaphore contention usually points to issues with logging or the I/O subsystem. However, even a well-tuned system can have high contention on the log semaphore in a OLTP environment that uses high throughput.