What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Block size affects how much data each storage request moves, how many operations a system must issue, the latency users experience, and how efficiently virtual disks consume host capacity. There is no universal best value: the right setting depends on the storage layer, access pattern, request-size distribution, read/write mix, and concurrency. Treat application I/O size, filesystem or virtual-disk allocation units, database pages, and device sectors as separate settings, then benchmark the complete path with representative traffic.

What “block size” means at each storage layer

“Block size” is an overloaded term. Microsoft defines application I/O size as the amount of data requested in one input/output operation. A virtual hard disk (VHD) has its own allocation block, a filesystem has an allocation unit, a database uses pages, and a storage device exposes sector sizes. These values can differ and are not interchangeable.

  • Application I/O size: the request issued by a database, virtual machine, file server, or analytics job.
  • Database page: the unit a storage engine reads or writes internally.
  • Filesystem allocation unit: the granularity used to assign file space.
  • VHD allocation block: virtual-disk space accounting and allocation granularity.
  • Sector size: the device-level media or logical sector format.

When documenting a design or benchmark, name the layer and unit explicitly. A 4 KB database page does not necessarily mean every request reaching the SSD is 4 KB.

How block size changes performance

IOPS and byte throughput

At a fixed IOPS rate, larger requests transfer more bytes. Microsoft expresses the relationship as:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Throughput = IOPS × I/O size

Its examples show the scale: 10,000 IOPS with 1 MiB requests equals 10 GiB/s, while 10,000 IOPS with 4 KiB requests equals about 38 MiB/s. These are illustrative calculations, not guarantees that a service or device can sustain either result; hardware, protocol, queue depth, and service limits still apply.

Latency and over-reading

A larger request can reduce the number of operations needed for a sequential transfer, but it may fetch data the application does not need. For small random reads, that extra data increases transfer time and memory traffic. Smaller requests can reduce over-reading, although very small requests may add command overhead and fail to use the device efficiently.

Space efficiency in virtual disks

For VHDs, Microsoft recommends matching the virtual-disk block size to the workload’s allocation pattern. If random writes allocate small regions but the VHD block is larger, the host can reserve more space than the guest workload actually uses. VHD allocation size is therefore a capacity concern as well as a performance setting, and it should not be confused with application request size.

What different workloads favor

Workload or layer Evidence-based direction What the evidence does not establish
Sequential streaming on Google Persistent Disk Google recommends I/O sizes of 256 KB or larger and, where possible, parallel sequential streams for standard Persistent Disk. This is platform-specific guidance, not a universal setting for every cloud service or array.
Random reads on tested data-center SSDs A 2023 VLDB study found 4 KB pages delivered the best random-read performance and lowest latency on its tested data-center-grade SSDs. The result applies to the study’s hardware and software. Smaller-than-4-KB pages performed worse there, and a database may see little benefit when I/O is not its bottleneck.
Virtual-disk allocation Match the VHD block to the workload’s allocation pattern; blocks larger than randomly allocated regions can increase host-space use. Allocation blocks and application I/O requests are different parameters.
Benchmark profiles SNIA gives examples such as 8 KB for an Oracle or filesystem transfer quantum, 64 KB for backup/restore, and 256 KB for streaming video. The 2010 guide presents examples, not current defaults. Measure the actual application.

What the NVMe page-size study shows

Haas and colleagues’ 2023 Proceedings of the VLDB Endowment paper measured page sizes on data-center-grade SSDs. In its random-read experiment, 4 KB pages were the best-performing choice and had the lowest latency. The system reached almost 6 GB/s with 4 KB random reads, compared with a 6.5 GB/s maximum using larger pages or sequential access—about 8% higher for the latter case.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The paper also illustrates why page size can create I/O amplification. With 16 KB pages and 100-byte records, accessing one record can require up to 160 times the record’s bytes to be read. That example describes an out-of-memory access pattern; a database that serves data from memory, or one limited by CPU or synchronization, may not gain from changing its page size.

Why benchmark numbers are easy to misread

SNIA warns that benchmark block size can bias the apparent result: very large requests can inflate throughput, while very small requests can inflate IOPS. Assuming a random workload is sequential, or testing only one request size, can produce an optimistic result that does not match production.

Short runs can also misrepresent behavior. Microsoft advises sufficient test frequency and duration for realistic storage-service measurements. Cache warm-up, cache bypass, queue depth, throttling, garbage collection, and the transition from in-memory to device I/O all affect the observed number.

A benchmark method that reflects production

  1. Identify every layer. Record the application request size, database page, filesystem allocation unit, VHD block, logical sector size, storage protocol, and device or cloud service.
  2. Capture the real request distribution. Measure common sizes and their percentages instead of selecting one nominal block. Include random and sequential access, read/write ratio, burstiness, and alignment.
  3. Reproduce concurrency. Test the production-like number of workers, queue depth, and parallel streams. A single-thread result cannot predict a highly parallel service.
  4. Run long enough. Include warm-up and steady-state intervals. Test both cold and warm cache behavior when the application experiences both.
  5. Report three primary metrics together. Record IOPS, byte throughput, and latency, including averages and useful tail percentiles such as p95 or p99.
  6. Describe the complete path. Disclose host, controller, network, storage service, driver, filesystem, database settings, cache policy, and whether data was in memory.
  7. Validate against application outcomes. Confirm transaction latency, scan time, backup duration, or user-visible response time—not only a synthetic peak.

NVIDIA’s GPUDirect Storage guidance similarly recommends examining throughput, latency, and IOPS across the full storage path; its gdsio utility reports these metrics together.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choosing a starting point for common questions

“What block size should I use for database storage?”

Start with the database engine’s page size and the observed access pattern, not a generic data-center default. Random point lookups may favor a smaller page, while scans and large sequential transfers may favor larger requests. The cited SSD study supports 4 KB for its tested random-read case, but that result must be validated on your engine, storage path, and concurrency.

“Should I use a larger block for sequential reads?”

Usually test larger requests first because they can reduce operation overhead and increase bytes moved per I/O. Google’s Persistent Disk guidance uses 256 KB or larger for streaming workloads. Treat that as a starting point for that platform, then verify latency, throughput limits, and parallel-stream behavior.

“Does block size affect IOPS or throughput?”

It affects both, but in different ways. Smaller requests can produce more operations and therefore higher reported IOPS, while larger requests can produce higher byte throughput at the same IOPS. Neither metric alone proves that an application is faster; latency and the workload’s completion time decide that.

Practical decision checklist

  • Have you stated which layer’s “block” you are changing?
  • Does the chosen size match the workload’s allocation and access pattern?
  • Are request sizes aligned with the filesystem, virtual disk, and device where alignment matters?
  • Have you tested random and sequential traffic separately?
  • Did you include the production read/write mix, queue depth, and concurrency?
  • Are IOPS, throughput, and latency reported together?
  • Did you test long enough to expose cache, throttling, and steady-state effects?
  • Have you checked host-space usage for randomly allocated virtual disks?

The Bottom Line

Choose block size from measured workload behavior: name the layer, model the request distribution, and benchmark realistic random or sequential traffic at production concurrency. Use IOPS, throughput, latency, and space consumption together; platform recommendations such as 256 KB streaming requests or a 4 KB random-read page are scoped examples, not universal rules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.