|Frequently Asked Questions|
|Tools Home||Molecular Biology||NMR||Data Model||VENN||Links|
How large should you set shmmax? You want to set shmmax to a value large enough to handle any data set you may want to process with the RNMRTK. shmmax is entered in bytes. I often set shmmax equal to 1,000 or 2,000 MB on our systems, where 1 MB = 1048576 bytes. The section program, which creates the shared memory sections, creates a 1024 byte header in addition to the size stipulated when it is executed. Because of this I generally set shmmax 1 MB larger than the largest data set size I expect to process. For example if I want to set shmmax to 1 GB the value you will enter for shmmax will be equal to 1048576 x (1000 + 1) = 1049624576.
Information about the current shared memory size limitations for your system may be obtained by using the ipcs command. For linux comptuers you may use ipcs -ml. For OSX systems you may try ipcs -M.
- # Permit large shared memory sections for use by RNMRTK
# 1048576 x 1001 = 1049624576
If a reboot of the system is not possible you can execute the following command:
echo '1049624576' > /proc/sys/kernel/shmmax
Note: This second method will not be permanent and will need to be redone after a reboot.
- sysctl -w kern.sysv.shmmax=1077936128
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=263168
- # sysctl -w kern.sysv.shmmax=4194304 kern.sysv.shmmin=1 kern.sysv.shmmni=32 kern.sysv.shmseg=8 kern.sysv.shmall=1024
# shmmax and shmall were updated to allow 1024 MB shared memory sections including header by multiplying
# the shmmax and shmall values by 257 from their default values.
sysctl -w kern.sysv.shmmax=1077936128 kern.sysv.shmmin=1 kern.sysv.shmmni=32 kern.sysv.shmseg=8 kern.sysv.shmall=263168
# Setup for Rowland NMR Toolkit
ulimit -s 32768
ulimit -d 300000