Thread: Increasing Max # of connections

Increasing Max # of connections

From
Errol Neal
Date:
Hi All,

I am using Postgresql 7.3.2 on Solaris 5.9 compiled with gcc and solaris
ld. Right now, our max number of connections and buffers are set to the
default, which is 32 for connections and 64 for buffers. I want to be able
to increase that to 100 Max connections and 200 max buffers, but when I do
that.. i get this:

IpcSemaphoreCreate: semget(key=5432004, num=17, 03600) failed: No space
left on device

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 100).

How do I increase the mentioned kernel values on solaris to be able to
increase the number of connections I need?


TIA,


Errol U. Neal


Errol Neal, Systems/Network Administrator
eneal@enhtech.com
Enhanced Technologies Inc.
http://www.enhtech.com
703-924-0301 or 800-368-3249
703-924-0302 Fax



Re: Increasing Max # of connections

From
"Cory 'G' Watson"
Date:
On Wednesday, July 23, 2003, at 10:48  AM, Errol Neal wrote:
> This error does *not* mean that you have run out of disk space.

Correct.

> How do I increase the mentioned kernel values on solaris to be able to
> increase the number of connections I need?

Check out the /etc/system file.

Read this:

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

Solaris is listed at the bottom.

Cory 'G' Watson
http://www.loggerithim.org


Re: Increasing Max # of connections

From
Errol Neal
Date:
At 11:48 AM 7/23/2003 -0400, Errol Neal wrote:
>Hi All,
>
>I am using Postgresql 7.3.2 on Solaris 5.9 compiled with gcc and solaris
>ld. Right now, our max number of connections and buffers are set to the
>default, which is 32 for connections and 64 for buffers. I want to be able
>to increase that to 100 Max connections and 200 max buffers, but when I do
>that.. i get this:
>
>IpcSemaphoreCreate: semget(key=5432004, num=17, 03600) failed: No space
>left on device
>
>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 100).
>
>How do I increase the mentioned kernel values on solaris to be able to
>increase the number of connections I need?
>
>
>TIA,
>
>
>Errol U. Neal
>
>
>Errol Neal, Systems/Network Administrator
>eneal@enhtech.com
>Enhanced Technologies Inc.
>http://www.enhtech.com
>703-924-0301 or 800-368-3249
>703-924-0302 Fax
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 7: don't forget to increase your free space map settings


Just in case some were wondering, here is the relative output of sysdef on
the system:


* Tunable Parameters
*
20799488        maximum memory allowed in buffer cache (bufhwm)
    15882        maximum number of processes (v.v_proc)
       99        maximum global priority in sys class (MAXCLSYSPRI)
    15877        maximum processes per user id (v.v_maxup)
       30        auto update time limit in seconds (NAUTOUP)
       25        page stealing low water mark (GPGSLO)
        5        fsflush run rate (FSFLUSHR)
       25        minimum resident memory for avoiding deadlock (MINARMEM)
       25        minimum swapable memory for avoiding deadlock (MINASMEM)
*
* Utsname Tunables
*
      5.9  release (REL)
server17  node name (NODE)
    SunOS  system name (SYS)
  Generic  version (VER)
*
* Process Resource Limit Tunables (Current:Maximum)
*
0x0000000000000100:0x0000000000010000   file descriptors
*
* Streams Tunables
*
      9  maximum number of pushes allowed (NSTRPUSH)
  65536  maximum stream message size (STRMSGSZ)
   1024  max size of ctl part of message (STRCTLSZ)
*
* IPC Messages module is not loaded
*
*
* IPC Semaphores
*
     10  semaphore identifiers (SEMMNI)
     60  semaphores in system (SEMMNS)
     30  undo structures in system (SEMMNU)
     25  max semaphores per id (SEMMSL)
     10  max operations per semop call (SEMOPM)
     10  max undo entries per process (SEMUME)
  32767  semaphore maximum value (SEMVMX)
  16384  adjust on exit max value (SEMAEM)
*
* IPC Shared Memory
*
    8388608      max shared memory segment size (SHMMAX)
    100  shared memory identifiers (SHMMNI)
*
* Time Sharing Scheduler Tunables
*
60      maximum time sharing user priority (TSMAXUPRI)
SYS     system class name (SYS_NAME)


Everything is pretty much at the defaults



TIA (again)


Errol Neal

Errol Neal, Systems/Network Administrator
eneal@enhtech.com
Enhanced Technologies Inc.
http://www.enhtech.com


703-924-0301 or 800-368-3249
703-924-0302 Fax



Re: Increasing Max # of connections

From
Nailah Ogeer
Date:
the only way you can do this is to change your kernel parameters or use 32
connections and 64 buffers


On Wed, 23 Jul 2003, Errol Neal wrote:

> Hi All,
>
> I am using Postgresql 7.3.2 on Solaris 5.9 compiled with gcc and solaris
> ld. Right now, our max number of connections and buffers are set to the
> default, which is 32 for connections and 64 for buffers. I want to be able
> to increase that to 100 Max connections and 200 max buffers, but when I do
> that.. i get this:
>
> IpcSemaphoreCreate: semget(key=5432004, num=17, 03600) failed: No space
> left on device
>
> 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 100).
>
> How do I increase the mentioned kernel values on solaris to be able to
> increase the number of connections I need?
>
>
> TIA,
>
>
> Errol U. Neal
>
>
> Errol Neal, Systems/Network Administrator
> eneal@enhtech.com
> Enhanced Technologies Inc.
> http://www.enhtech.com
> 703-924-0301 or 800-368-3249
> 703-924-0302 Fax
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>


Re: Increasing Max # of connections

From
Errol Neal
Date:
At 12:05 PM 7/23/2003 -0400, you wrote:
>At 11:48 AM 7/23/2003 -0400, Errol Neal wrote:
>>Hi All,
>>
>>I am using Postgresql 7.3.2 on Solaris 5.9 compiled with gcc and solaris
>>ld. Right now, our max number of connections and buffers are set to the
>>default, which is 32 for connections and 64 for buffers. I want to be
>>able to increase that to 100 Max connections and 200 max buffers, but
>>when I do that.. i get this:
>>
>>IpcSemaphoreCreate: semget(key=5432004, num=17, 03600) failed: No space
>>left on device
>>
>>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 100).
>>
>>How do I increase the mentioned kernel values on solaris to be able to
>>increase the number of connections I need?
>>
>>
>>TIA,
>>
>>
>>Errol U. Neal
>>
>>
>>Errol Neal, Systems/Network Administrator
>>eneal@enhtech.com
>>Enhanced Technologies Inc.
>>http://www.enhtech.com
>>703-924-0301 or 800-368-3249
>>703-924-0302 Fax
>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 7: don't forget to increase your free space map settings
>
>
>Just in case some were wondering, here is the relative output of sysdef on
>the system:
>
>
>* Tunable Parameters
>*
>20799488        maximum memory allowed in buffer cache (bufhwm)
>    15882        maximum number of processes (v.v_proc)
>       99        maximum global priority in sys class (MAXCLSYSPRI)
>    15877        maximum processes per user id (v.v_maxup)
>       30        auto update time limit in seconds (NAUTOUP)
>       25        page stealing low water mark (GPGSLO)
>        5        fsflush run rate (FSFLUSHR)
>       25        minimum resident memory for avoiding deadlock (MINARMEM)
>       25        minimum swapable memory for avoiding deadlock (MINASMEM)
>*
>* Utsname Tunables
>*
>      5.9  release (REL)
>server17  node name (NODE)
>    SunOS  system name (SYS)
>  Generic  version (VER)
>*
>* Process Resource Limit Tunables (Current:Maximum)
>*
>0x0000000000000100:0x0000000000010000   file descriptors
>*
>* Streams Tunables
>*
>      9  maximum number of pushes allowed (NSTRPUSH)
>  65536  maximum stream message size (STRMSGSZ)
>   1024  max size of ctl part of message (STRCTLSZ)
>*
>* IPC Messages module is not loaded
>*
>*
>* IPC Semaphores
>*
>     10  semaphore identifiers (SEMMNI)
>     60  semaphores in system (SEMMNS)
>     30  undo structures in system (SEMMNU)
>     25  max semaphores per id (SEMMSL)
>     10  max operations per semop call (SEMOPM)
>     10  max undo entries per process (SEMUME)
>  32767  semaphore maximum value (SEMVMX)
>  16384  adjust on exit max value (SEMAEM)
>*
>* IPC Shared Memory
>*
>    8388608      max shared memory segment size (SHMMAX)
>    100  shared memory identifiers (SHMMNI)
>*
>* Time Sharing Scheduler Tunables
>*
>60      maximum time sharing user priority (TSMAXUPRI)
>SYS     system class name (SYS_NAME)
>
>
>Everything is pretty much at the defaults
>
>
>
>TIA (again)
>
>
>Errol Neal
>
>Errol Neal, Systems/Network Administrator
>eneal@enhtech.com
>Enhanced Technologies Inc.
>http://www.enhtech.com
>
>
>703-924-0301 or 800-368-3249
>703-924-0302 Fax
>
>
>
>---------------------------(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



Okay, here is an update...

I modified the kernel params in /etc/system to this:

set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=100
set semsys:seminfo_semmns=200
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767


Here is the output from sysdef

* IPC Semaphores
*
    100  semaphore identifiers (SEMMNI)
    200  semaphores in system (SEMMNS)
     30  undo structures in system (SEMMNU)
    100  max semaphores per id (SEMMSL)
    100  max operations per semop call (SEMOPM)
     10  max undo entries per process (SEMUME)
  32767  semaphore maximum value (SEMVMX)
  16384  adjust on exit max value (SEMAEM)
*
* IPC Shared Memory
*
4294967295      max shared memory segment size (SHMMAX)
    100  shared memory identifiers (SHMMNI)


Okay, the new problem is that when I place as little as double the default
amount of connections and buffers, Postgresql starts, but dies shortly
thereafter. There is not any log output as to why it dies, it just does!!
Can someone help me please??


Errol Neal






Errol Neal, Systems/Network Administrator
eneal@enhtech.com
Enhanced Technologies Inc.
http://www.enhtech.com
703-924-0301 or 800-368-3249
703-924-0302 Fax