Обсуждение: SHMEM settings under FreeBSD

Поиск
Список
Период
Сортировка

SHMEM settings under FreeBSD

От
Michael Fork
Дата:
I am trying to run postgres under 4.2-STABLE FreeBSD using a large amount
of shared memory, and am having problems finding the correct settings.

The box has 512MB or RAM, of which I would like for Postgres to use 400MB
for buffers and 32MB for sorting, which I determined would be:

-B 51200 (51200 pages * 8kb/page = 400*1024kb)
-S 32768 (since the value is in kb)

However, when starting I get the following error:

IpcMemoryCreate: shmget failed (Cannot allocate memory) key=5432001,
size=427022336, permission=600

I tried increasing the kern.ipc.shmmax to 427022336 and 457022336, but I
am stil unable to get postgres to start.

Any Ideas?

Thanks

Michael Fork - CCNA - MCP - A+
Network Support - Toledo Internet Access - Toledo Ohio



Re: SHMEM settings under FreeBSD

От
Tom Lane
Дата:
Michael Fork <mfork@toledolink.com> writes:
> The box has 512MB or RAM, of which I would like for Postgres to use 400MB
> for buffers and 32MB for sorting, which I determined would be:

This is a bad idea.  For one thing, you have neglected to allow anything
for backend local data; you should probably leave at least 10-20MB per
backend to avoid swap thrashing.  (And you do realize that -S is the
amount of memory to use *per sort operation*?  Each backend will feel
entitled to use that much for each sort it's doing, which could well
be several on a complex query.)

Also, I think you are better off leaving a good chunk of memory free for
kernel disk buffering, even on a machine that's not going to do anything
but Postgres.

While you didn't say how many backends you intend to run, my first
instinct would be to allocate no more than 100 to 200Mb of your box
for Postgres disk buffers.  They're not the only thing that you want
to use memory for.

            regards, tom lane