BUG #13416: Postgres >= 9.3 doesn't use optimized shared memory on Solaris anymore

Поиск
Список
Период
Сортировка
От stadtkind2@gmx.de
Тема BUG #13416: Postgres >= 9.3 doesn't use optimized shared memory on Solaris anymore
Дата
Msg-id 20150608132432.2796.77742@wrigleys.postgresql.org
обсуждение исходный текст
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      13416
Logged by:          Stefan Krüger
Email address:      stadtkind2@gmx.de
PostgreSQL version: 9.4.1
Operating system:   Solaris 11.2
Description:

Hi,

starting with Postgres 9.3, there seems to be a bug with SysV Shared Memory
on Solaris. Postgres doesn't seem to use ISM anymore.

http://docs.oracle.com/cd/E23824_01/html/821-1450/chapter2-73.html

"A special kind of shared memory known as intimate shared memory (ISM) is
used by DBMS vendors to maximize performance.
When a shared memory segment is made into an ISM segment, the memory for the
segment is locked.
This feature enables a faster I/O path to be followed and improves memory
usage.
A number of kernel resources describing the segment are then shared between
all processes that attach to the segment in ISM mode"

I'm using Solaris 11.2 on Sparc (T5220) and the "official" solaris11/sparc
binaries from your site.

PostgreSQL 9.4.1:

"dynamic_shared_memory_type" was set to sysv (also tried 'posix' and 'mmap',
same results)

root@solaris:/ # ipcs -mA
IPC status from <running system> as of Wednesday, February 18, 2015 02:04:56
PM CET
T         ID      KEY        MODE        OWNER    GROUP  CREATOR   CGROUP
NATTCH      SEGSZ   CPID  LPID   ATIME    DTIME    CTIME  ISMATTCH
PROJECT
Shared Memory:
m         49   0x7be9c1bd --rw------- postgres postgres postgres postgres
  4       2316  1726  2809 13:22:02 16:55:41 13:22:02        4
user.postgres
m         48   0x52e2c1   --rw------- postgres postgres postgres postgres
  4         56  1726  2809 13:22:00 16:55:41 13:22:00        4
user.postgres

root@solaris:/ # pmap -sx 1726
         Address     Kbytes        RSS       Anon     Locked Pgsz Mode
Mapped File
...
00007FFEFF000000          8          8          -          8   8K rwxsR    [
ism shmid=0x32 ]
00007FFEFF800000          8          8          -          8   8K rwxsR    [
ism shmid=0x33 ]
FFFFFFFB50000000     282624     282624          -          -   4M rw-s-    [
anon ]
FFFFFFFB61400000   16773120    7290880          -          -    - rw-s-    [
anon ]
FFFFFFFF61000000     159744     159744          -          -   4M rw-s-    [
anon ]


Notice that there are 2 ISM's, but they're way too small. All the "fun"
happens in an anonymous memory region
which does not benefit from large(r) page support (anon memory seems to be
limited to 4MB pages,
whereas ISM can use up to 2 GB pages on certain SPARC CPUs).

PostgreSQL 9.2.10 is fine though:

root@solaris:/ # ipcs -mA
IPC status from <running system> as of Wednesday, February 18, 2015 02:08:49
PM CET
T         ID      KEY        MODE        OWNER    GROUP  CREATOR   CGROUP
NATTCH      SEGSZ   CPID  LPID   ATIME    DTIME    CTIME  ISMATTCH
PROJECT
Shared Memory:
m         50   0x52e2c1   --rw------- postgres postgres postgres postgres
  4 17605672960 18225 18232 14:08:42 14:08:43 14:08:40        4
user.postgres

Notice the huge SEGSZ!

root@solaris:/ # pmap -sx 18225 | grep ism
         Address     Kbytes        RSS       Anon     Locked Pgsz Mode
Mapped File
...
00007FFAE0000000   17039360   17039360          -   17039360 256M rwxsR    [
ism shmid=0x32 ]
00007FFEF0000000     151552     151552          -     151552   4M rwxsR    [
ism shmid=0x32 ]
00007FFEF9400000       2112       2112          -       2112  64K rwxsR    [
ism shmid=0x32 ]
00007FFEF9610000         16         16          -         16   8K rwxsR    [
ism shmid=0x32 ]

This looks good.

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

Предыдущее
От: lincpa@163.com
Дата:
Сообщение: BUG #13409: pg-9.4.3-x86 initdb --locale = C error
Следующее
От: held911@163.com
Дата:
Сообщение: BUG #13413: pg_stat_statements don't statistics "DEALLOCATE ALL" statements