Skip to content

Three layers of measurement

FindDiskKiller organizes information into three layers. Understanding the distinction helps you interpret what the numbers mean and where their limits are.

Application layer

What you see: app CPU, disk reads/writes, network sent/received.

What these numbers mean:

  • Disk I/O is the total across all disks, as reported by the kernel for that process. It is not the NAND write count of a specific SSD.
  • CPU can exceed 100% because macOS reports CPU per core. A multi-threaded app using 2 full cores shows as 200%.
  • Network is split into download and upload so you can distinguish between fetching data and syncing or uploading.

Device layer

What you see: physical device throughput and the relationship to mounted volumes.

What these numbers mean:

  • Device counters reflect actual bytes going through the I/O subsystem.
  • This is not the same as summing up per-process I/O. Caching, APFS copy-on-write, filesystem metadata, and kernel activity all consume device I/O that is not attributed to any single app.
  • Device throughput numbers are separate from process I/O numbers. Comparing them directly will not balance out.

File layer

What you see: recently modified files, open file locations, and on-demand access tracing.

What these numbers mean:

  • “Recently modified” comes from FSEvents. It shows that a location changed — it does not, by itself, prove which process made the change.
  • File access tracing records the bytes an app requested from the system (read or write system calls). The actual physical I/O may differ due to caching, APFS snapshots, compression, and memory-mapped I/O.
  • When tracking is stopped, the trace ends cleanly. Gaps in data are shown as “data unavailable” rather than zero — so you can tell the difference between no activity and missing information.

CPU and the 5-second rate

The “last 5 seconds” rate is computed from two samples taken 5 seconds apart. It reflects the most recent activity window, not a smoothed average, and can fluctuate rapidly during bursty workloads.

What “unavailable” means

Some fields may be unavailable because:

  • The device does not report that SMART/NVMe attribute (many external USB enclosures, for example).
  • You have not granted the required permission.
  • Tracking was stopped or has not been started.
  • The requested information is not exposed by macOS.

When data is unavailable, the UI shows it as unavailable, not as zero.

Why per-process disk I/O does not equal SSD NAND writes

The I/O numbers shown for each process are the bytes the process asked the kernel to read or write. Between the process and the physical NAND flash there are multiple layers: the unified buffer cache, APFS copy-on-write and snapshots, the SSD controller’s internal write amplification, garbage collection, and wear leveling. None of these are attributed to a single process, which is why process I/O counts should be thought of as “requested I/O” rather than physical media consumption.