zfsonlinux/zfs — pull request #1309 by ryao (2013-02-21 05:43:00+00:00)
Title: Do not align zio objects

We currently use physical memory for 512-byte objects, yet the ratio of
VmallocUsed to the capacity of ARC always exceeds 1. On one system, I
measured this ratio to be 1.52. After modifying another system to stop
aligning objects in zio caches, I measured the ratio to be 0.70, which
is a dramatic improvement.

The SPL slab code keeps objects and their metadata together. When
alignment is necessary, internal fragmentation as great as 50% results,
which effectively doubles memory consumption. This contributed to
severe memory pressure when ARC was permitted to use 3/4 of system
memory. Nothing currently depends on this alignment, so it is safe to
stop requiring it. The benefits appear to be substantial.

Signed-off-by: Richard Yao