kern/121423: Cann't allocate more 2 Gb shared memory
Dmitry Rybin
dimanenator at gmail.com
Thu Mar 6 09:40:01 UTC 2008
>Number: 121423
>Category: kern
>Synopsis: Cann't allocate more 2 Gb shared memory
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Mar 06 09:40:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Dmitry Rybin
>Release: 7.0-RELEASE
>Organization:
Kirgudu Co
>Environment:
FreeBSD cayman.asd.net 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 10:35:36 UTC 2008 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd6
>Description:
Any programm which use SHARED MEMORY cann't allocate more 2 Gb of Shared memory.
as example starting postgres with 2GB shmem:
Mar 6 10:46:42 cayman postgres[1486]: [1-1] FATAL: could not create shared memory segment: Invalid argument
Mar 6 10:46:42 cayman postgres[1486]: [1-2] DETAIL: Failed system call was shmget(key=5432001, size=2157543424, 03600).
Mar 6 10:46:42 cayman postgres[1486]: [1-3] HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.
Mar 6 10:46:42 cayman postgres[1486]: [1-4] You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently
Mar 6 10:46:42 cayman postgres[1486]: [1-5] 2157543424 bytes), reduce PostgreSQL's shared_buffers parameter (currently 256000) and/or its max_connections parameter
Mar 6 10:46:42 cayman postgres[1486]: [1-6] (currently 83).
Mar 6 10:46:42 cayman postgres[1486]: [1-7] If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising
Mar 6 10:46:42 cayman postgres[1486]: [1-8] the request size or reconfiguring SHMMIN is called for.
Mar 6 10:46:42 cayman postgres[1486]: [1-9] The PostgreSQL documentation contains more information about shared memory configuration.
# sysctl -a|grep ipc.sem
kern.ipc.semaem: 16384
kern.ipc.semvmx: 32767
kern.ipc.semusz: 104
kern.ipc.semume: 10
kern.ipc.semopm: 100
kern.ipc.semmsl: 60
kern.ipc.semmnu: 256
kern.ipc.semmns: 512
kern.ipc.semmni: 256
kern.ipc.semmap: 512
sysctl -a|grep shm
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 1
kern.ipc.shmall: 65536000
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 268435456010
Hardware:
HP360R05 2 Quad Core Xeon, 8Gb mem, HP p800i raid
>How-To-Repeat:
1. Install FreeBSD 7
2. Install Posgress 8.3
3 . postgresql.conf
shared_buffers = 2200MB
4. edit sysctl
# sysctl -a|grep ipc.sem
kern.ipc.semaem: 16384
kern.ipc.semvmx: 32767
kern.ipc.semusz: 104
kern.ipc.semume: 10
kern.ipc.semopm: 100
kern.ipc.semmsl: 60
kern.ipc.semmnu: 256
kern.ipc.semmns: 512
kern.ipc.semmni: 256
kern.ipc.semmap: 512
sysctl -a|grep shm
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 1
kern.ipc.shmall: 65536000
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 268435456010
5. start postgress
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list