Re: could not create shared memory segment: Invalid argument - Mailing list pgsql-general

From Andy Colson
Subject Re: could not create shared memory segment: Invalid argument
Date
Msg-id 55A8127C.6050800@squeakycode.net
Whole thread Raw
In response to Re: could not create shared memory segment: Invalid argument  (Ryan King - NOAA Affiliate <ryan.king@noaa.gov>)
List pgsql-general
> On Tue, Jul 14, 2015 at 8:59 AM, Andy Colson <andy@squeakycode.net
> <mailto:andy@squeakycode.net>> wrote:
>
>     On 7/13/2015 7:08 PM, Ryan King - NOAA Affiliate wrote:
>
>         Apologies ahead of time for not knowing which group to send to,
>         but I
>         wanted to see if anyone has encountered and resolved this type
>         of error.
>         I'm setting up postgresql 9.2 streaming replication on RH and after
>         copying the master data directory over to the slave, the psql
>         service
>         refuses start and gives the following errors.
>
>
>
>              2015-07-13 23:55:41.224 UTC FATAL:  could not create shared
>         memory
>         segment: Invalid argument
>              2015-07-13 23:55:41.224 UTC DETAIL:  Failed system call was
>         shmget(key=5432001, size=1146945536, 03600).
>              2015-07-13 23:55:41.224 UTC HINT:  This error usually means
>         that
>         PostgreSQL's request for a shared memory segment exceeded your
>         kernel's
>         SHMMAX parameter.  You can either reduce the request size or
>         reconfigure
>         the kernel with larger SHMMAX.  To reduce the request size
>         (currently
>         1146945536 bytes), reduce PostgreSQL's shared memory usage,
>         perhaps by
>         reducing shared_buffers or max_connections.
>                   If the request size is already small, it's possible
>         that it is
>         less than your kernel's SHMMIN parameter, in which case raising the
>         request size or reconfiguring SHMMIN is called for.
>                   The PostgreSQL documentation contains more information
>         about
>         shared memory configuration.
>              2015-07-13 23:56:21.344 UTC FATAL:  could not create shared
>         memory
>         segment: Invalid argument
>              2015-07-13 23:56:21.344 UTC DETAIL:  Failed system call was
>         shmget(key=5432001, size=58302464, 03600).
>              2015-07-13 23:56:21.344 UTC HINT:  This error usually means
>         that
>         PostgreSQL's request for a shared memory segment exceeded your
>         kernel's
>         SHMMAX parameter.  You can either reduce the request size or
>         reconfigure
>         the kernel with larger SHMMAX.  To reduce the request size
>         (currently
>         58302464 bytes), reduce PostgreSQL's shared memory usage, perhaps by
>         reducing shared_buffers or max_connections.
>                   If the request size is already small, it's possible
>         that it is
>         less than your kernel's SHMMIN parameter, in which case raising the
>         request size or reconfiguring SHMMIN is called for.
>                   The PostgreSQL documentation contains more information
>         about
>         shared memory configuration.
>
>
>
>         I've set shared_buffer way down to next to nothing along with
>         kernel.shmmax and kernel.shmall per some blogs. However, the
>         same error
>         persists, and I'm getting no where. I think ultimately the
>         solution is
>         to upgrade, but the devs may not be ready for an upgrade at this
>         point.
>         Any help would be greatly appreciated. Thanks!
>
>
>     You don't want to decrease kernel.shmmax you want to set it to the
>     request size:
>
>     sysctl -w kernel.shmmax=1146945536
>
>     shmmax is the only thing you really need to play with.
>
>     -Andy
>
>

On 7/15/2015 9:13 AM, Ryan King - NOAA Affiliate wrote:
 > I tried that too - same result. I updated another box w/ the same issue
 > to 9.4.4, and all is well there. Thanks for your reply.
 >


Ah, I assume then that something else is already using some shared memory.

PG needs:
>  To reduce the request size (currently 58302464 bytes),

That much shared memory *free*.  You can check current usage with:  ipcs -m

Add what PG needs to what you are already using, and you should be good
to go.

-Andy



pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Need help on postgres related to insertion of a tuple.
Next
From: Francisco Reyes
Date:
Subject: Re: How to test SSL cert from CA?