[ Previous | Next | Contents | Glossary | Home | Search ]
AIX Versions 3.2 and 4 Performance Tuning Guide

File-System Fragment Size

The fragments feature (in AIX Version 4 only) allows the space in a file system to be allocated in less than 4KB chunks. When a file system is created, the system administrator can specify the size of the fragments in the file system. The allowable sizes are 512, 1024, 2048, and 4096 bytes (the default). Files smaller than a fragment are stored in a single fragment, conserving disk space, which is the primary objective.

Files smaller than 4096 bytes are stored in the minimum necessary number of contiguous fragments. Files whose size is between 4096 bytes and 32KB (inclusive) are stored in one or more (4KB) full blocks and in as many fragments as are required to hold the remainder. Files that contain more than 32KB of data are stored entirely in full blocks.

Whatever the fragment size, a full block is still considered to be 4096 bytes. In a file system with a fragment size less than 4096, however, a need for a full block can be satisfied by any contiguous sequence of fragments totalling 4096 bytes. It doesn't have to begin on a multiple-of-4096-byte boundary.

The file system tries to allocate space for files in contiguous fragments whenever possible. In pursuit of that objective, it spreads the files themselves across the logical volume to minimize inter-file allocation interference and fragmentation.

The primary performance hazard for file systems with small fragment sizes is space fragmentation. The existence of small files scattered across the logical volume can make it impossible to allocate contiguous or closely spaced blocks for a large file. The performance of accessing the large file suffers. Carried to an extreme, space fragmentation can make it impossible to allocate space for a file, even though there are many individual free fragments.

Part of a decision to create a small-fragment file system should be a policy for defragmenting the space in that file system with the defragfs command. This policy also has to take into account the performance cost of running defragfs.

[ Previous | Next | Contents | Glossary | Home | Search ]