What is the source of the Perform reported 'Kernel Resident Memory' and 'Process Memory' metrics in System Statistics on AIX?
|
Legacy ID:KA292915 What is the source of the Perform reported 'Kernel Resident Memory' and 'Process Memory' metrics in System Statistics on AIX?Kernel Resident MemoryThe "Kernel Resident Memory" comes from the "real_system" element in the perfstat_memory_total_t structure provided by the perfstat_memory_total() system call.The comment associated with that metric in the /usr/include/libperfstat.h file states: /* real memory used by system segments (in 4KB pages). This is the sum of all the used pages in segment marked for system usage. Since segment classifications are not always guaranteed to be accurate, this number is only an approximation. */ That metric doesn't include the File System Cache which is reported separately. When doing the calculation: 'Free Memory' + 'Files Memory' + 'Process Memory' + 'Kernel Memory' = 'Total Memory' It is possible that 'Kernel Memory' includes physical memory pages allocated to 'Pseudo-Swap' which is an in-memory region associated with the paging daemon. I wasn't able to find a document from IBM that describes the list of memory usage that would be attributed to 'Kernel Memory' by the AIX kernel. Process MemoryThe 'Process Memory' metric reported in 'System Statistics' for AIX comes from the perfstat_memory_total_t.real_process metric where that metric is basically defined as "all memory pages that aren't counted as free, system. or file system cache". Here is the metric comment from the header file:/* real memory used by process segments (in 4KB pages). This is real_total - real_free - numperm -real_system. Since real_system is an approximation, this number is too. */ Analysis to this point confirms that Perform is properly collecting the data from the AIX kernel and properly reporting the data that is available. But when looking at the system level memory numbers - especially through Investigate - be aware that "real_system" (Kernel Memory in Perform) and "real_user" (not reported in Perform) are considered an 'approximation' and "real_process" (Process Memory) is defined in such a way that it would hide an overstatement or understatement of the other metrics (allowing them to always total to exactly the amount of 'Total Memory' defined on the machine). On AIX, should Free Memory + Files Memory + Process Memory + Kernel Memory equal Total Memory from System Statistics?For AIX, should 'Total Memory' = 'Free Memory' + 'Files Memory' + 'Process Memory' + 'Kernel Memory' from System Statistics?For AIX the sum of the 4 different classes of memory reported should add up to the total physical memory configured on the machine. The reason is that on AIX the kernel defines the 'Process Memory' data source as "all memory that isn't free, files, or kernel. So by definition Total memory must equal 'Free Memory' + 'Files Memory' + 'Process Memory' + 'Kernel Memory'. Related Products:
|