Semaphores and node health
Quick answer
Understand the semaphore pools, spot exhaustion, and respond when an instance stops responding.
Key takeaways
- Semaphores are per node worker slots, split by pool
- Exhaustion looks like an outage even when the database is fine
- Cancel first, then fix the cause
- Quota rules prevent repeat incidents
What a semaphore is
Each application node has a limited number of worker slots called semaphores, split into pools for interactive transactions, background work and API traffic. A transaction holds a semaphore for its lifetime, so long transactions starve everyone else.
Spotting exhaustion
Symptoms are slow or hanging pages while the database looks healthy. Check node statistics for queued transactions, and the semaphore set usage on each node. A steadily growing queue on one pool identifies the culprit.
Response
Stabilise first, then fix the cause.
- Cancel the offending transactions from the sessions list
- Check for a scheduled job or integration that started at the same time
- Apply or tighten quota rules for the pool that is exhausted
- Review the query that caused it and index or filter it properly
Want to learn this properly?
Our live, instructor-led ServiceNow Training covers this hands-on, with real projects and a certification path.
Check your understanding
What does a growing transaction queue with healthy database indicate?
- A. Network failure
- B. Semaphore exhaustion
- C. Index corruption
- D. Email backlog
Show answer
B. Semaphore exhaustion
Work is waiting for worker slots on the node.
What holds a semaphore?
- A. Every user session
- B. Each running transaction
- C. Each ACL
- D. Each table
Show answer
B. Each running transaction
A transaction occupies a slot until it completes.