Discussion:
7.4.3 initdb: could not create semaphores
(too old to reply)
t***@poczta.onet.pl
2004-07-02 13:20:56 UTC
Permalink
Hello

I have FreeBSD5.1, postgresql 7.4.3, when i tried to:

initdb -D /usr/local/pgsql/data

i receive:

......

selecting default max_connections... 10
selecting default shared_buffers... 50
creating configuration files... ok
creating template1 database in /usr/local/pgsql/data//base/1... FATAL: 
could not create semaphores: No space left on device
DETAIL:  Failed system call was semget(1, 17, 03600).
HINT:  This error does *not* mean that you have run out of disk space.
        It occurs when either the system limit for the maximum number of
semaphore sets (SEMMNI), or the system wide maximum number of semaphores
(SEMMNS), would be exceeded.  You need to raise the respective kernel
parameter.  Alternatively, reduce PostgreSQL's consumption of semaphores by
reducing its max_connections parameter (currently 10).
        The PostgreSQL documentation contains more information about
configuring your system for PostgreSQL.

initdb: failed
initdb: removing data directory "/usr/local/pgsql/data/"

When i tried to edit in /usr/local/share/postgres/postgresql.conf

and set max_connection = 8 nothing changed, initdb again used:

selecting default max_connections... 10

Why ?

How can i sovle this problem ?

 

Thanx

Michal
C***@transplace.com
2004-07-02 13:58:41 UTC
Permalink
A really good email from Cheryl Bender near a month ago:

Michael;

What version of FreeBSD? What version of PostGres?
On my server, running FreeBSD 5.1 and pg 7.3, the values are

kern.ipc.shmmax: 33554432
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0
shm 30 35K 38K 4653 16,1024,16384

I found this script (
http://developer.postgresql.org/docs/pgsql/contrib/ipc_check/ ) for
freebsd that checks if changes are needed to shared memory settings for
the number of Buffers requested. The postmaster man page says the
default buffers are 64, so I ran it with the -B 64 switch and it gave me
the following output

--------------
Bash2.05b$./ipc_check -B 64

shared memory enabled: 32768 kB available

no changes to kernel required for a "-B 64" setting

==========================

semaphores enabled
------------------

Hopefully someone with a lot more experience than me will answer soon
with a better answer, but maybe this will get you started. Good luck!

Cheryl

-----Original Message-----
From: pgsql-admin-***@postgresql.org
[mailto:pgsql-admin-***@postgresql.org] On Behalf Of Michael Fork
Sent: Friday, June 11, 2004 6:24 PM
To: pgsql-***@postgresql.org
Subject: [ADMIN] FreeBSD & Shared Memory


All,

I am trying to get Postgres running on FreeBSD and am
running into problems
with shared mem. Here is the postgres error messge:

FATAL: could not create shared memory segment: Cannot
allocate memory
DETAIL: Failed system call was shgmet(key=5432001, size=103407616,
03600).
HINT: This error usually means that PostgreSQL's
request for a shared
memory segment exceeded available memory or swap
space.
To reduce the request size (currently 103407616
bytes), reduce PostgreSQL's
shared_buffers parameter (currently 12288) and/or its max_connections
parameter (cureently 40). The PostgreSQL documentation contains more
information about shared memory configuration.

Here is the output of sysctl (which shows there is
more shared mem available
than postgres is asking for):

bash-2.05b$ sysctl -a | grep shm
kern.ipc.shmmax: 200000000
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0

and finally the IPC stats which shows nothing being
used:

Message Queues:
T ID KEY MODE OWNER GROUP

Shared Memory:
T ID KEY MODE OWNER GROUP

Semaphores:
T ID KEY MODE OWNER GROUP

Any ideas why postgres won't start?

Thanks.

Michael





***@poczta.onet.pl
Sent by: To: pgsql-***@postgresql.org
pgsql-admin-***@pos cc:
tgresql.org Subject: [ADMIN] 7.4.3 initdb: could not create semaphores


07/02/2004 08:20 AM






Hello
I have FreeBSD5.1, postgresql 7.4.3, when i tried to:
initdb -D /usr/local/pgsql/data
i receive:
......
selecting default max_connections... 10
selecting default shared_buffers... 50
creating configuration files... ok
creating template1 database in /usr/local/pgsql/data//base/1... FATAL:
could not create semaphores: No space left on device
DETAIL: Failed system call was semget(1, 17, 03600).
HINT: This error does *not* mean that you have run out of disk space.
It occurs when either the system limit for the maximum number of
semaphore sets (SEMMNI), or the system wide maximum number of semaphores
(SEMMNS), would be exceeded. You need to raise the respective kernel
parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by
reducing its max_connections parameter (currently 10).
The PostgreSQL documentation contains more information about
configuring your system for PostgreSQL.
initdb: failed
initdb: removing data directory "/usr/local/pgsql/data/"
When i tried to edit in /usr/local/share/postgres/postgresql.conf
and set max_connection = 8 nothing changed, initdb again used:
selecting default max_connections... 10
Why ?
How can i sovle this problem ?

Thanx
Michal





---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ***@postgresql.org)
t***@poczta.onet.pl
2004-07-02 14:33:35 UTC
Permalink
Re:

i launched http://developer.postgresql.org/docs/pgsql/contrib/ipc_check/:

-bash-2.05b# ./ipc_check.pl -B 64


shared memory enabled: 32768 kB available

no changes to kernel required for a "-B 64" setting

==========================

and my:

bash-2.05b# sysctl -a |grep shm
kern.ipc.shmmax: 33554432
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0
          shm     5    20K     25K     1423  16,1024,16384
bash-2.05b# sysctl -a |grep sem
kern.ipc.semmap: 30
kern.ipc.semmni: 10
kern.ipc.semmns: 60
kern.ipc.semmnu: 30
kern.ipc.semmsl: 60
kern.ipc.semopm: 100
kern.ipc.semume: 10
kern.ipc.semusz: 92
kern.ipc.semvmx: 32767
kern.ipc.semaem: 16384
      acpisem    14     2K      2K       14  128
          sem     4     7K      8K       72  16,1024,4096
debug.acpi_semaphore_debug: 0
p1003_1b.semaphores: 0
p1003_1b.sem_nsems_max: 0
p1003_1b.sem_value_max: 0


bash-2.05b# uname -a
FreeBSD Server 5.1-RELEASE-p16 FreeBSD 5.1-RELEASE-p16 #2: Mon Mar 29
08:44:10 CEST 2004     ***@Server:/usr/src/sys/i386/compile/MYKERNEL  i386
bash-2.05b# pg_ctl --version
pg_ctl (PostgreSQL) 7.4.3

and still i can not create initdb....

I remember i had identical problem with FreeBSD and Postgres in the past,
but i can not remind what have i done to solve it...

 

Could anybody help ?

 

Thanx

Michal

 


 
Tom Lane
2004-07-02 16:44:55 UTC
Permalink
Post by t***@poczta.onet.pl
could not create semaphores: No space left on device
DETAIL: Failed system call was semget(1, 17, 03600).
HINT: This error does *not* mean that you have run out of disk space.
It occurs when either the system limit for the maximum number of
semaphore sets (SEMMNI), or the system wide maximum number of semaphores
(SEMMNS), would be exceeded. You need to raise the respective kernel
parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by
reducing its max_connections parameter (currently 10).
The PostgreSQL documentation contains more information about
configuring your system for PostgreSQL.
How can i sovle this problem ?
You need to increase your kernel's settings for maximum number of
semaphores. See the admin documentation that the error message is
trying to point you to:

http://www.postgresql.org/docs/7.4/static/kernel-resources.html

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ***@postgresql.org so that your
message can get through to the mailing list cleanly
C***@transplace.com
2004-07-02 16:54:27 UTC
Permalink
I have all of these on my server, but postgres does not fail when using
semaphores. What happens when you 'gmake check'?

Thanks,
Corey





***@poczta.onet.pl
Sent by: To: pgsql-***@postgresql.org
pgsql-admin-***@pos cc:
tgresql.org Subject: Re: [ADMIN] 7.4.3 initdb: could not create
semaphores

07/02/2004 09:33 AM






Re:
i launched http://developer.postgresql.org/docs/pgsql/contrib/ipc_check/:
-bash-2.05b# ./ipc_check.pl -B 64

shared memory enabled: 32768 kB available
no changes to kernel required for a "-B 64" setting
==========================
and my:
bash-2.05b# sysctl -a |grep shm
kern.ipc.shmmax: 33554432
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0
shm 5 20K 25K 1423 16,1024,16384
bash-2.05b# sysctl -a |grep sem
kern.ipc.semmap: 30
kern.ipc.semmni: 10
kern.ipc.semmns: 60
kern.ipc.semmnu: 30
kern.ipc.semmsl: 60
kern.ipc.semopm: 100
kern.ipc.semume: 10
kern.ipc.semusz: 92
kern.ipc.semvmx: 32767
kern.ipc.semaem: 16384
acpisem 14 2K 2K 14 128
sem 4 7K 8K & nbsp; 72 16,1024,4096
debug.acpi_semaphore_debug: 0
p1003_1b.semaphores: 0
p1003_1b.sem_nsems_max: 0
p1003_1b.sem_value_max: 0

bash-2.05b# uname -a
FreeBSD Server 5.1-RELEASE-p16 FreeBSD 5.1-RELEASE-p16 #2: Mon Mar 29
08:44:10 CEST 2004 ***@Server:/usr/src/sys/i386/compile/MYKERNEL i386
bash-2.05b# pg_ctl --version
pg_ctl (PostgreSQL) 7.4.3
and still i can not create initdb....
I remember i had identical problem with FreeBSD and Postgres in the past,
but i can not remind what have i done to solve it...

Could anybody help ?

Thanx
Michal








---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
t***@poczta.onet.pl
2004-07-02 17:18:21 UTC
Permalink
I restarted computer and it's working fine:)

I had too small kern.ipc.semmns: 60, maybe some applications did not free
semaphores (?).

Thanx all for help.

 

 

Loading...