1.4.3. GFS2 Performance Improvements

There are many features of GFS2 file systems that do not result in a difference in the user interface from GFS file systems but which improve file system performance.
A GFS2 file system provides improved file system performance in the following ways:
  • Better performance for heavy usage in a single directory
  • Faster synchronous I/O operations
  • Faster cached reads (no locking overhead)
  • Faster direct I/O with preallocated files (provided I/O size is reasonably large, such as 4M blocks)
  • Faster I/O operations in general
  • Faster execution of the df command, because of faster statfs calls
  • Improved atime mode to reduce the number of write I/O operations generated by atime when compared with GFS
GFS2 file systems provide broader and more mainstream support in the following ways:
  • GFS2 is part of the upstream kernel (integrated into 2.6.19).
  • GFS2 supports the following features.
    • extended file attributes (xattr)
    • the lsattr() and chattr() attribute settings by means of standard ioctl() calls
    • nanosecond timestamps
A GFS2 file system provides the following improvements to the internal efficiency of the file system.
  • GFS2 uses less kernel memory.
  • GFS2 requires no metadata generation numbers.
    Allocating GFS2 metadata does not require reads. Copies of metadata blocks in multiple journals are managed by revoking blocks from the journal before lock release.
  • GFS2 includes a much simpler log manager that knows nothing about unlinked inodes or quota changes.
  • The gfs2_grow and gfs2_jadd commands use locking to prevent multiple instances running at the same time.
  • The ACL code has been simplified for calls like creat() and mkdir().
  • Unlinked inodes, quota changes, and statfs changes are recovered without remounting the journal.