# 6.1 The Sound of Silence Imagine you are watching a construction site. There are workers everywhere, but for long stretches of time, nothing is happening. One worker is leaning on a shovel. Another is sitting on a brick pile. A third is staring at a closed gate. In Postgres, these workers are our **[[Chapter 3/3.3 - The Soldiers|Soldiers]]**. Each one has a tiny, invisible stopwatch around their neck. ## What is a Wait Event? A **Wait Event** is a record of time where a soldier *wanted* to work but *couldn't*. Postgres tracks hundreds of different reasons for waiting. It is the most precise way to find the "bottleneck" in your system. Instead of guessing why a query is slow, you look at the stopwatches. If 90% of the stopwatches are labeled "Waiting for Elevator," then you know that your Disk IO (Chapter 5) is the problem. ## The Three Families of Frustration Most wait events fall into one of three categories: 1. **Waiting for the World (I/O)**: The soldier is waiting for data to travel from the basement (Disk) or across the ocean (Network). 2. **Waiting for a Colleague (Locks)**: The soldier is waiting for another process to finish with a row, a page, or a table. 3. **Waiting for the System (Latches/CPU)**: The soldier is waiting for a internal resource, like a spot on the CPU or a lock on a shared memory buffer. By learning to read these events, you stop being a developer who "guesses" and start being a detective who "knows." --- [[Chapter 6/6.0 - The Waiting Game|← 6.0 - The Waiting Game]] | [[Chapter 6/6.0 - The Waiting Game|↑ 6.0 - The Waiting Game]] | [[Chapter 6/6.2 - Disk Wait|6.2 - Disk Wait →]]