Common Misconfigured HP-UX Resources (April 2006)

The JFS Inode Cache
HP-UX has long maintained a static cache in physical memory for storing High Performance File
System (HFS) file information (inodes). The VERITAS File System (HP OnlineJFS/JFS) manages its own
cache of file system inodes which will be referred to here as the JFS inode cache. The JFS inode
cache is managed much differently than the HFS inode cache. Understanding how the JFS inode
cache is managed is key to understanding how to best tune the JFS inode cache for your unique
environment. Improper tuning of the JFS inode cache can affect memory usage or inode lookup
performance.
This section will address the following questions regarding the JFS inode cache:
What is an inode cache?
What is the maximum size of the inode cache?
How can I determine the number of inodes in the cache?
How can I determine the number of inodes in use?
How does JFS manage the inode cache?
How much memory is required for the JFS inode cache?
Are there any guidelines for configuring the JFS inode cache?
What is an Inode Cache?
An inode cache is a holding location for inodes from disk. Each inode in memory is a superset of
data, which contains the inode from disk. The disk inode stores information for each file such as the
file type, permissions, timestamps, size of file, number of blocks, and extent map. The in-memory
inode stores the on-disk inode information along with overhead used to manage the inode in memory.
This information includes pointers to other structures, pointers used to maintain linked lists, the inode
number, lock primitives, and so forth.
Once the inode is brought into memory, subsequent access to the inode can be done through memory
without having to read or write it to disk.
One inode cache entry must exist for every file that is opened on the system. If the inode table fills up
with active inodes, the following error will be seen on the console and in the syslog file and the
open() system call will fail:
vx_iget - inode table overflow
Once the last close is done on a file, the inode will be put on a free list but it is not necessarily
removed from the cache. The inode cache will likely contain some files that are closed, so if the file is
reopened a disk access will not occur as the inode is already in memory.
16