[IQUG] How much percentage of RAMs should be allocated to shared memory at Linux?

Steve Shen sshen at sscinc.com
Fri Sep 14 11:20:48 MST 2018

Today's Topic:
                How much percentage of total RAMs should be allocated to shared memory at Linux?
                What was the negative impacts from over-allocating shared memory at Linux?

Today I spotted something very odd;  but I have not received any feedbacks from UNIX SA managers so far.
Refer to the following:

sybase at ykt1eiqprd37: /siqsoftware/sybase ==> cat /proc/sys/kernel/shmmax

There are 762 GB of RAMs in the machine.  Defining 18,446,744,073,692,774,399 KB was beyond my imagination!

The statement below should be applicable to both Solaris and Linux:
                Never set shmmax to a value greater than 7/8 of physical memory.

How could the shared memory defined so high and the Linux O/S was booted successfully?

sybase at ykt1eiqprd37: /siqsoftware/sybase ==> ipcs -l

------ Messages Limits --------
max queues system wide = 32768
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 4096
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

I had read the document below.  I am not using wired memory at all.  We have different dedicated IQ server and client machines.


Manage Shared Memory
In some cases, increasing the shared memory segment can lead to better network performance.
Sybase IQ uses shared memory for two purposes:

  *   When the client and Sybase IQ are on the same system, shared memory is the default communication mechanism, not TCP/IP.
  *   When you specify the server command-line option -iqwmem, shared memory is used to provide wired memory.
If the -iqwmem option is used, you need to increase the maximum shared memory segment size parameter in the /etc/system configuration file. Sybase recommends that you specify a configuration for the largest amount of wired memory you expect your system to support.
To create a shared segment to support a maximum physical memory of 3350MB for your system, for example, add the following line to the /etc/system file:
set shmsys:shminfo_shmmax=0xffffffff
Never set shmmax to a value greater than 7/8 of physical memory.
Local connections through shared memory are not supported for Sun Solaris x64 systems. Use standard network connectivity by adding the parameters -host <hostname> and -port <portnumber> to the client connection string.
See the Sybase IQ System Administration Guide for more information on using the -host and -port parameters.
Steve Shen

This email with all information contained herein or attached hereto may contain confidential and/or privileged information intended for the addressee(s) only. If you have received this email in error, please contact the sender and immediately delete this email in its entirety and any attachments thereto.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://iqug.org/pipermail/iqug/attachments/20180914/3e25bc97/attachment-0001.html>

More information about the IQUG mailing list