# Blocked I/O

Blocking I/O is the process that D3 uses to group several
disk reads into one larger disk access in order to improve disk performance.

Processes performing sequential disk accesses, such as
file-saves or AQL statements, have the possibility of grouping several
disk reads into one larger disk access. This has the advantage of
reducing the number of disk accesses and, therefore, improving performance.
For example, selecting a 10,000 frame file normally requires 10,000
disk accesses. If the process can read four frames at a time, it runs
only 2,500 disk accesses. Even if reading 4 frames (8 KB on a 2 KB
frame system) takes a little bit longer than reading only 1 frame
(2 KB), reducing the number of disk accesses usually results in a
noticeable performance improvement.

Blocked I/O places greater
memory demands on the system, and can have some impact on multiuser
performance.

The net effect of grouping the disk reads is reducing
the number of frame faults (that is, when a D3 process requires a
page that is not currently in memory). This can be monitored with
the TCL buffers command.

The blocking factor
(or number of frames read in one disk access) can be set for the whole
system using the TCL blkio command, or as an argument
in the configuration file.

## See also

- [blkio command](https://d3codex.com/tcl/blkio-command/)
- [buffers command](https://d3codex.com/tcl/buffers-command/)

---
Source: https://d3codex.com/definitions/blocked-i-o/ - part of the D3Codex reference.
