René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback
 

Intimate Shared Memory (ISM)

ISM is touted as a performance-enhancing feature that can be used on systems that use shared memory.
It
  • Lets application share the same real-memory segment
  • Locks pages in memory, thus preventing them from being paged out to disk.
  • Shares PTEs (page table entries) among processes, thus fewer lookups are needed in the address translation tables.
  • Uses 4 MB page size, thus decreasing the number of address translations

Determining if an application uses ISM

  1. Find PID of process
    ps -ef | grep ...
  2. pmap -x PID
    If the thrid column shows a significant number of kilobytes for the corresponding row where the application name is found, then the application uses shared memory.
  3. Start the crash utility
    Command p finds the slot number in the first column.
  4. Type -f slot # (step 2): Address spaces for this process are shown. The sixth column lists the segment driver used to map this segment into the address space. If the driver used by this application is segvn_ops, the application does not use ISM. If the driver used is segspt_shm, this application is using ISM.

Disabling ISM

ISM is enabled by default on Solaris. In order to disable it, the following parameters have to be set in the /etc/system file:
shmsys:ism_off=1
shmsys:share_page_table=1