Res: Solaris - Memory allocation error - Solved
Posted in 2008
This situation are solved... was a my mistake.
I interpreted wrong the machine notes. Where i believed the parameters are automatically configured on the Solaris 10 and the man of rctladm not help to clarify.
I just set all semaphores and memory configurations like suggested to Solaris 9 and now works fine! 21GB (5GB SHARED + 16GB BUFFER)
Here is the text what confusing my mind.
1. Kernel Parameters
a) The values of the kernel parameters that were used for
testing this
product on Solaris 9 systems are given below. These values
might need
to be tuned depending on the application and availability
of system
resources. These entries are in /etc/system.
set semsys:seminfo_semmap=64
set semsys:seminfo_semmni=4096
set semsys:seminfo_semmns=4096
set semsys:seminfo_semmnu=4096
set semsys:seminfo_semume=64
set semsys:seminfo_semmsl=500
set shmsys:shminfo_shmmax=4398046511104
set shmsys:shminfo_shmmin=100
set shmsys:shminfo_shmmni=500
set shmsys:shminfo_shmseg=100
The value of the kernel parameter "semmsl" should be set
to at least
100. This is the maximum number of semaphores per set.
b) On Solaris 10, all System V IPC facilities are either
automatically
configured or can be controlled by resource controls.
The following kernel parameters are either removed or
commented out
from /etc/system:
semsys:seminfo_semmap
semsys:seminfo_semmns
semsys:seminfo_semmnu
semsys:seminfo_semume
shmsys:shminfo_shmmin
shmsys:shminfo_shmseg
The following obsolete IPC tunables are replaced by their
resource
controls with the new default values:
The following obsolete IPC tunables are replaced by their
resource
controls with the new default values:
semsys:seminfo_semmni
semsys:seminfo_semmsl
shmsys:shminfo_shmmax
shmsys:shminfo_shmmni
Refer to rctladm(1m) man page for more information about
available
resource controls.
----- Mensagem original ----
De: Cesar Inacio Martins <cesar_inacio_martins@yahoo.com.br>
Para: informix-list cdi <informix-list@iiug.org>
Enviadas: Quinta-feira, 4 de Setembro de 2008 15:31:57
Assunto: Solaris - Memory allocation error
Hi,
I'm preparing a evaluating environment on Sun Solaris 10 SPARC with IDS 11.50 FC1TL (Time Limited).
The Version of Solaris is:
# isainfo -v
64-bit sparcv9 applications
asi_blk_init vis2 vis
32-bit sparc applications
asi_blk_init vis2 vis v8plus div32 mul32
# uname -a
SunOS unknown 5.10 Generic_127111-09 sun4v sparc SUNW,SPARC-Enterprise-T5120
# cat /etc/release
Solaris 10 8/07 s10s_u4wos_12b SPARC Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 16 August 2007
I know this version is't the last update... and no patches are installed.
This machine have 32GB of memory.
When try to start the IDS with more then 8GB TOTAL (Buffer+Shared), a memory allocation error occurr, see this situations:
------- THIS WORK! ------- SHM = 3.7GB BUFFER = 4GB -------
> egrep "^SHM|^BUFFER" onconfig.sv
SHMBASE 0x10A000000L
SHMVIRTSIZE 3700000
SHMADD 1024000
SHMTOTAL 28672000
SHMVIRT_ALLOCSEG 0,3
SHMNOACCESS
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=4K,buffers=1000000,lrus=128,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=2K,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
>onstat -m 15:04:51 IBM Informix Dynamic Server Started.
15:04:51 Requested shared memory segment size rounded from 4299776KB to 4325376KB
15:04:56 Segment locked: addr=10a000000, size=4429185024
15:04:56 Requested shared memory segment size rounded from 3700000KB to 3702784KB
15:05:01 Segment locked: addr=212000000, size=3791650816
...
15:05:13 On-Line Mode
>onstat -g seg id key addr size ovhd class blkused blkfree
19 52604801 10a000000 4429185024 52335944 R* 1074796 6548
20 52604802 212000000 3791650816 44435248 V* 17874 907822
------- THIS NOT WORK! ------- SHM = 3.9GB BUFFER = 4GB -------
> egrep "^SHM|^BUFFER" onconfig.sv
SHMBASE 0x10A000000L
SHMVIRTSIZE 3900000
SHMADD 1024000
SHMTOTAL 28672000
SHMVIRT_ALLOCSEG 0,3
SHMNOACCESS
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=4K,buffers=1000000,lrus=128,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=2K,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
>onstat -m 15:08:57 IBM Informix Dynamic Server Started.
15:08:57 Requested shared memory segment size rounded from 4299776KB to 4325376KB
15:09:02 Segment locked: addr=10a000000, size=4429185024
15:09:02 Requested shared memory segment size rounded from 3900000KB to 3932160KB
15:09:05 shmget: [EINVAL][22]: key 52604803: invalid segment size
15:09:06 mt_shm_init: can't create virtual segment
------- THIS NOT WORK! ------- SHM = 3.7GB BUFFER = 4.4GB -------
> egrep "^SHM|^BUFFER" onconfig.sv432_a_tcp
SHMBASE 0x10A000000L
SHMVIRTSIZE 3700000
SHMADD 1024000
SHMTOTAL 28672000
SHMVIRT_ALLOCSEG 0,3
SHMNOACCESS
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=4K,buffers=1100000,lrus=128,lru_min_dirty=50.000000,lru_max_dirty=60.500000
BUFFERPOOL size=2K,buffers=10000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000
>onstat -m 15:10:59 IBM Informix Dynamic Server Started.
15:10:59 Requested shared memory segment size rounded from 4761600KB to 4784128KB
15:11:06 Segment locked: addr=10a000000, size=4898947072
15:11:06 Requested shared memory segment size rounded from 3700000KB to 3702784KB
15:11:08 shmget: [EINVAL][22]: key 52604803: invalid segment size
15:11:09 mt_shm_init: can't create virtual segment
I followed the machine notes, where I set the kernel parameter on the /etc/system:
set mmu_ism_pagesize=4194304
This not work.
I found more configurations about problem allocation on DB2, I try , without success:
set disable_large_pages=0x30
set disable_ism_large_pages=0x34
This could be a miss of any Solaris patches? or something on this Time Limited version?
One more think:
After reboot with mmu_ism_pagesize, I check with command bellow, and appear do not effected:
# adb -k
physmem 3f05b7
mmu_ism_pagesize /D@@