|
Measures reported by IpcsSharMemTest
Shared memory (SHM) is another method of interprocess communication (IPC) whereby 2 or more processes share a single chunk of memory to communicate. The shared memory system can also be used to set permissions on memory, allowing for things like malloc debuggers to be written.
Shared memory is persistent. It does not go away when no program is referencing it. This can be a good thing, but it can tie up system resources. To conserve system resources, administrators should cleanup the shared memory if it is not in use anymore. But, how would administrators know whether a shared memory segment is currently in use or not, and if used, which processes are using it? For this, administrators can use the IpcsSharMemTest test.
This test auto-discovers the owners of SHM segments, monitors the usage of each segment, and reports the number of SHM segments owned by each owner, the number of segments mapped to/not mapped to processes, the count of processes attached to the segments, the total size of the SHM segments owned by each owner, and the number of SHM segments removed, cleared, and locked for every owner. This way, the test points to those owners with SHM segments that are not even mapped to any process, leave alone being used; thus memory segments that are candidates for removal/release can be identified.
The measures made by this test are as follows:
| Measurement |
Description |
Measurement Unit |
Interpretation |
| Shar_mem_seg |
For each owner, this indicates the number of shared memory segments owned by that owner. For the Total descriptor, this indicates the total number of shared memory segments on the target server, regardless of owner. |
Number |
This measure will be reported for the Total descriptor, only if the REPORT BY flag is set to Total or Owner and Total.
To know the complete details of each SHM segment owned by an owner, use the detailed diagnosis of this measure. From the detailed diagnosis, you can figure out which user and process created each SHM segment, when it was created, the size of each segment, the number of processes mapped to each segment, and more! Using this information, you can accurately isolate those SHM segments that are of the maximum size, and those that have been sized poorly. You can also point to SHM segments that are not attached to any processes; you can either attach such segments to processes, remove them, or clear the space in them to concerve system resources. |
| Shar_mem_no_pro/th>
| For each owner, this indicates the number of shared memory segments owned by that owner to which no processes are attached currently. For the Total descriptor, this indicates the total number of shared memory segments on the target server without any processes attached. |
Number |
This measure will be reported for the Total descriptor, only if the REPORT BY flag is set to Total or Owner and Total.
You can use the detailed diagnosis of this measure to know which segments have no processes attached. Such segments are candidates for removal / space release. |
| Shar_mem_pro |
For each owner, this indicates the number of processes that are currently attached to the SHM segments owned by that owner. For the Total descriptor, this indicates the total number of processes attached to all SHM segments on the target server. |
Number |
This measure will be reported for the Total descriptor, only if the REPORT BY flag is set to Total or Owner and Total.
You can use the detailed diagnosis of this measure to know which processes are attached to which SHM segment. |
| Shar_mem_siz |
For each owner, this indicates the total size of all SHM segments owned by that owner. For the Total descriptor, this indicates the total size of all SHM segments on the target server. |
KB |
This measure will be reported for the Total descriptor, only if the REPORT BY flag is set to Total or Owner and Total. |
|