Performance Guide
Chapter 4, Tuning memory resources

Investigating memory usage by system tables

Investigating memory usage by system tables


NOTE: In previous releases, you could specify the size of various static data structures in the kernel such as the process, in-core inode, open file, and lock tables. In this release, the operating system dynamically allocates memory to system tables. In this way, they grow over time to accommodate maximum demand. You can specify the maximum size to which a table can grow (for example, the kernel parameter MAX_PROC specifies the maximum size of the process table). However, this does not give you a performance gain and may limit your system's functionality if you specify too small a value.

System table usage can be seen with sar -v (or mpsar -v for SMP):

   16:10:31 proc-sz ov inod-sz ov file-sz ov lock-sz
   16:10:37  61/127  0 160/250  0 177/291  0    2/10
   16:10:43  61/127  0 156/250  0 167/291  0    2/10
   16:10:48  61/127  0 154/250  0 159/291  0    2/10
In each of the size columns, the first number signifies the number of entries currently used in the table and the second signifies the size to which the table has grown since the system was last booted. The table sizes should be monitored over a period of time to determine the upper limits for their grown sizes.

You can also determine the current grown size and the maximum possible sizes of these tables using the getconf(C) command.

The following table is a summary of the fields displayed by the sar -v and mpsar -v commands:

Table 4-3 Viewing the size of system tables

 ---------------------------------------------------------------------
 Command      Field        Description
 ---------------------------------------------------------------------
 [mp]sar -v   proc-sz      used and grown size of the process table
              inod-sz      used and grown size of the inode table
              file-sz      used and grown size of the file table
              lock-sz      used and grown size of the lock table
For more details on the dynamic kernel tables, see ``Table limits''.