Re: Shared memory usage in PostgreSQL 9.1

Поиск
Список
Период
Сортировка
Am 03.12.2011 15:34, schrieb Tomas Vondra:
 > Do you need to know an exact value or are you just interested why the
 > values in docs are not exact?

Both. I'm writing an installation script that calculates the necessary
IPC memory and increases the limit on the OS level (kernel.shmmax) if
needed. I want to increase the limit only as much as really necessary,
so I need to calculate the IPC usage as exactly as possible.

(Btw, what negative consequences - if any - does it have if I set
kernel.shmmax higher as necessary, like all available memory? Does this
limit serve only as a protection against greedy applications?)

 > If you want to see what exactly needs how much memory, check the
 > src/backend/storage/ipc/ipci.c file in sources. I've added some log
 > messages, and this is the result on my 64bit machine (using the values
 > you've posted):

Thanks a lot, that was helpful. So it seems the values in the docs are
only correct for a 32 bit server.

But I still don't understand this:

In our example, we have set shared_buffers to:

400 MB = 419430400 Bytes

but according to your log the used memory is:

buffers = 424669472 Bytes

This is a discrepancy of 1.25%.

The difference could be explained by taking credit for the descriptors
which may not be comprised in the shared_buffers setting, even if the
shared_buffers value is set in memory units. But according to the docs,
the descriptors should use 208/8192 = 2.5%. And on a 64bit machine, the
descriptors should use even more memory, i.e. up to 5%.

So I'm still a bit confused.

-- Christoph

В списке pgsql-general по дате отправления:

Предыдущее
От: Oleg Serov
Дата:
Сообщение: Re: Postgresql + corrupted disk = data loss. (Need help for database recover)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Shared memory usage in PostgreSQL 9.1