The Intel® Cluster Checker clean_ipc test module is used to verify that facilities available in the X/Open System Interface (XSI) Inter-Process Communication (IPC) subsystem are not in use. This is a “housekeeping” check used to evaluate that unnecessary IPC facilities are not active and that the cluster is ready for use.
By default, if the ipcs command reports that any shared memory segments, semaphore arrays, or message queue facilities are in use, the test module will report an error. An example of this error looks like this:
System V Interprocess Communication, (clean_ipc).......................FAILED
subtest 'Semaphore Arrays' failed
- failing All hosts returned: 'found 5 entries, target was 0'
Several common software applications use the IPC subsystem, including Apache web server. In addition, it’s common for the head node to use more facilities than compute nodes. This can lead to issues on clusters where the head node is also a compute node. The module does not normally execute on dedicated head nodes.
The clean_ipc test module can be configured to look for a specific number of entries, but it cannot be configured to look for a minimum or maximum number of entries, nor can any facility tests be excluded. This makes it unsuitable for use if any processes use the IPC subsystem in a non-deterministic manner.
If the exact number of entries for each subtest are known and will not change during cluster operation, these can be defined in the configuration file. You can determine the current number in use with the ipcs command.
The following is example output from the command ipcs -au | grep 'allocated':
segments allocated 12
pages allocated 960
allocated semaphores = 5
allocated queues = 0
This information can then be used to update the configuration file. For the example output above, the new configuration file should look like this:
Any facility not defined in the configuration file will default to zero (0).
The clean_ipc test module should be excluded from the configuration file if the cluster is using any processes for which the number of IPC facilities in use cannot be pre-determined. This includes processes that may use a fixed number of IPC facilities when started, but allocate additional facilities or release facilities during execution.
For clusters where the head node is also a compute node, the mixed head node and compute nodes may report different values for IPC facilities in use. In this case, either disable this test module on the head node using the check_head tag or use Intel® Cluster Checker's group capability to set separate configuration values for the head node and compute nodes.