On Sat, Apr 28, 2012 at 13:10, Kevin
Kempter
<cs_dba@xxxxxxxxxxxxxxxxxxx>
wrote:
All;
I just want to be sure that I'm not causing myself greif. I
have a kvm in the cloud that is supposed to have access to
32GB of ram. when I do a top I only see 1GB of ram, I've
pinged the hosting provider, maybe it shows up as it's used?
What does the 'free' command show?
Anyway when I try and
start postgres I see this:
$ 2012-04-28 12:00:33 EDT [6429]: [1-1] FATAL: XX000:
could not create shared memory segment: Cannot allocate
memory
2012-04-28 12:00:33 EDT [6429]: [2-1] DETAIL: Failed
system call was shmget(key=5432001, size=7700914176,
03600).
2012-04-28 12:00:33 EDT [6429]: [3-1] 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 7700914176 bytes),
reduce PostgreSQL's shared_buffers parameter (currently
917504) and/or its max_connections parameter (currently
503).
The PostgreSQL documentation contains more
information about shared memory
configuration.
2012-04-28 12:00:33 EDT [6429]: [4-1] LOCATION:
InternalIpcMemoryCreate, pg_shmem.c:178
Which means I should bump up shmmax like this:
# sysctl -w kernel.shmmax=7700914176
and add it to /etc/sysctl.conf:
# tail
/etc/sysctl.conf
kernel.msgmax =
65536
# Controls the maximum shared segment size, in
bytes
kernel.shmmax =
68719476736
# Controls the maximum number of shared memory segments,
in pages
kernel.shmall =
4294967296
#PostgreSQL
kernel.shmmax = 7700914176
I assume I should have to tweak ONLY kernel.shmmax, am I
correct?
Correct.
I'm also assuming that
this is a KVM cloud host provider issue, i.e. it looks like
I actually do not have 32G or ram. Does anyone disagree
with my conclusions?
You haven't provided evidence on how much RAM your system
sees. A free -m will show the total memory the system has and
is being used.
Regards.