powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / huge_pages, что если они закончатся?
24 сообщений из 24, страница 1 из 1
huge_pages, что если они закончатся?
    #39728690
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Читаю различные статьи по huge_pages.


Рекомендуют ставить

grep ^VmPeak /proc/11491/status

разделенную на

grep ^Hugepagesize /proc/meminfo


Т.е. в моем случае это 7000.

Но 7000 * 2048 = 14.3Гб.


А на сервере ОЗУ на порядок больше.





Что будет если постгрес съест более 14.3 Гб ?


Упадет ли он?



Для меня тема huge_pages незнакома, разбираюсь потихоньку...
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728692
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прирост от huge_pages вроде 5-10% должен быть...
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728711
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, сколько их ставить в ОС?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728758
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонВ общем, сколько их ставить в ОС?
330
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728767
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если, например, 80% от памяти поставить под huge_pages, это норм?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728768
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mefmanСиний СлонВ общем, сколько их ставить в ОС?
330

выставляйте себя клоуном в других темах пожалуйста.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728791
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонЧто будет если постгрес съест более 14.3 Гб ?
Упадет ли он?
Проще. (для 9.4+ только)
postgresql huge pages умеет использовать под сегмент разделяемой памяти, который выделяется константно при старте. И тут выбор есть только достаточно есть свободной памяти при старте базы или нет.
Плюс крутилка huge_pages={on,try,off} для, соответственно, "запускаться только если удалось занять huge pages", "попробовать huge pages, иначе в обычной памяти", "не использовать huge pages"

Но в рантайме можно поймать OOM, если вы просчитались в настройках и backend'ами понадобилось памяти больше, чем есть вне huge pages. Например, под work_mem'ы.

Выделяемый при старте сегмент шаренной памяти близок по размеру shared_buffers, но не идентичен. Где-то на 2-3% больше обычно. Можно резервировать по размеру shared_buffers + 5%
Где-то до 32гб shared_buffers жить можно без huge pages, дальше - сильно желательно. Ну а сколько памяти выделять под shared_buffers - знайте ваше базу. 75% RAM вполне можно под OLTP, хотя я предпочитаю 25% и остальное под page cache.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728795
kira ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий Слонвыставляйте себя клоуном в других темах пожалуйста.

да это вы, сударь

Синий СлонЧто будет если постгрес съест более 14.3 Гб ?

Упадет ли он?


не упадет, oom killer его прибьет :)

а если серьезно то читайте о связке huge+shaded+wall, если huge < shared+wall - падаем, с большой вероятностью, если больше - то бестолку
при явном huge_page = on
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728807
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний СлонЧто будет если постгрес съест более 14.3 Гб ?
Упадет ли он?
Проще. (для 9.4+ только)
postgresql huge pages умеет использовать под сегмент разделяемой памяти, который выделяется константно при старте. И тут выбор есть только достаточно есть свободной памяти при старте базы или нет.
Плюс крутилка huge_pages={on,try,off} для, соответственно, "запускаться только если удалось занять huge pages", "попробовать huge pages, иначе в обычной памяти", "не использовать huge pages"

Но в рантайме можно поймать OOM, если вы просчитались в настройках и backend'ами понадобилось памяти больше, чем есть вне huge pages. Например, под work_mem'ы.

Выделяемый при старте сегмент шаренной памяти близок по размеру shared_buffers, но не идентичен. Где-то на 2-3% больше обычно. Можно резервировать по размеру shared_buffers + 5%
Где-то до 32гб shared_buffers жить можно без huge pages, дальше - сильно желательно. Ну а сколько памяти выделять под shared_buffers - знайте ваше базу. 75% RAM вполне можно под OLTP, хотя я предпочитаю 25% и остальное под page cache.


Спасибо за ответ.


Не могу поставить HugePages больше 6428


Ставлю любое число больше, например,

sysctl -w vm.nr_hugepages=10000


все равно

grep ^HugePages /proc/meminfo


показывает 6428





Подскажите, как поставить больше?

Что это за ограничение такое?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39728832
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий Слон,

видимо нет больше свободной памяти. Изменение sysctl не вытесняет page cache, например. Посмотрите во free что где, возможно сбросьте page cache вручную.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729107
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний Слон,

видимо нет больше свободной памяти. Изменение sysctl не вытесняет page cache, например. Посмотрите во free что где, возможно сбросьте page cache вручную.


Просто требовалась перезагрузка.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729109
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний СлонЧто будет если постгрес съест более 14.3 Гб ?
Упадет ли он?
Проще. (для 9.4+ только)
postgresql huge pages умеет использовать под сегмент разделяемой памяти, который выделяется константно при старте. И тут выбор есть только достаточно есть свободной памяти при старте базы или нет.
Плюс крутилка huge_pages={on,try,off} для, соответственно, "запускаться только если удалось занять huge pages", "попробовать huge pages, иначе в обычной памяти", "не использовать huge pages"

Но в рантайме можно поймать OOM, если вы просчитались в настройках и backend'ами понадобилось памяти больше, чем есть вне huge pages. Например, под work_mem'ы.

Выделяемый при старте сегмент шаренной памяти близок по размеру shared_buffers, но не идентичен. Где-то на 2-3% больше обычно. Можно резервировать по размеру shared_buffers + 5%
Где-то до 32гб shared_buffers жить можно без huge pages, дальше - сильно желательно. Ну а сколько памяти выделять под shared_buffers - знайте ваше базу. 75% RAM вполне можно под OLTP, хотя я предпочитаю 25% и остальное под page cache.


Т.е. надо

1) установить shared_buffers = shared_buffers +5%
2) оставить память под work_mem для всех коннектов.


Правильно ли я понял что постгрес huge_pages использует ТОЛЬКО под shared_buffers?
И если он стартанул, то нехватки именно huge_pages быть не должно, т..к shared_buffers отъел свое при старте а все остальное пользуется обычной памятью ?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729197
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонMelkijСиний Слон,

видимо нет больше свободной памяти. Изменение sysctl не вытесняет page cache, например. Посмотрите во free что где, возможно сбросьте page cache вручную.


Просто требовалась перезагрузка.
Не требовалась. Но да, это более простой вариант.
Или сложный, если случайно просчитаться в числе страниц и запросить их больше, чем есть физической памяти - система тогда из перезагрузки не вернётся и из recovery поднимать надо будет.

Синий Слон1) установить shared_buffers = shared_buffers +5%
huge pages = shared_buffers +5%

Синий Слон2) оставить память под work_mem для всех коннектов.
work_mem установлен всегда. Для всех. Вы можете только крутить размер памяти
И учитывать, что work_mem - лимит не на запрос, а на узел плана. Один запрос может использовать несколько work_mem

Синий СлонПравильно ли я понял что постгрес huge_pages использует ТОЛЬКО под shared_buffers?
И если он стартанул, то нехватки именно huge_pages быть не должно, т..к shared_buffers отъел свое при старте а все остальное пользуется обычной памятью ?
Да.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729203
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонПравильно ли я понял что постгрес huge_pages использует ТОЛЬКО под shared_buffers?

Да. Transparent HugePages пока скорее мешают, чем работают. В нормальных ОС всё, конечно, лучше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
root@webdb1:~# cat /etc/release 
                             Oracle Solaris 11.3 X86
  Copyright (c) 1983, 2016, Oracle and/or its affiliates.  All rights reserved.
                            Assembled 03 August 2016
root@webdb1:~# pmap -xasl 11674 
11674:  /opt/k2b/bin/postgres
         Address     Kbytes        RSS       Anon     Locked Pgsz Mode   Mapped File
 0000000000400000       6144       6144          -          -   2M r-x----  postgres 
0000000000A00000        780        360          -          -    - r-x----  postgres
0000000000AC3000         24         24          -          -   4K r-x----  postgres
0000000000AC9000          4          4          -          -    - r-x----  postgres
0000000000ACA000          4          4          -          -   4K r-x----  postgres
0000000000ACB000         60         52          -          -    - r-x----  postgres
0000000000ADA000          4          4          -          -   4K r-x----  postgres
0000000000ADB000         12         12          -          -    - r-x----  postgres
0000000000ADE000          4          4          -          -   4K r-x----  postgres
0000000000ADF000        268        228          -          -    - r-x----  postgres
0000000000B22000         12         12          -          -   4K r-x----  postgres
0000000000B25000          8          -          -          -    - r-x----  postgres
0000000000B27000          8          8          -          -   4K r-x----  postgres
0000000000B29000          4          -          -          -    - r-x----  postgres
0000000000C29000          4          4          -          -   4K rw-----  postgres
0000000000C2A000          4          4          -          -    - rw-----  postgres
0000000000C2B000          4          4          4          -   4K rw-----  postgres
0000000000C2C000         36         36          -          -    - rw-----  postgres
0000000000C35000          8          8          -          -   4K rw-----  postgres
0000000000C37000          8          4          -          -    - rw-----  postgres
0000000000C39000          8          8          -          -   4K rw-----  postgres
0000000000C3B000          4          4          -          -    - rw-----  postgres
0000000000C3C000          4          4          -          -   4K rw-----  postgres
0000000000C3D000         92         12          -          -    - rw-----  postgres
0000000000C54000          4          4          -          -   4K rw-----  postgres
0000000000C55000         36         16          -          -    - rw-----  postgres
0000000000C5E000          4          4          -          -   4K rw-----  postgres
0000000000C5F000        148          8          -          -    - rw-----  postgres
0000000000C84000         16         16          4          -   4K rw-----    [ heap ]
0000000000C88000       1504          -          -          -    - rw-----    [ heap ]
0000000000E00000       2048       2048       2048          -   2M rw-----    [ heap ]
 FFFF80FE80000000    4194304    4194304    4194304    4194304   1G rwxsR--    [ ism shmid=0x0 ]
FFFF80FF80000000     172032     172032     172032     172032   2M rwxsR--    [ ism shmid=0x0 ] 
FFFF80FF8A800000        256        256        256        256   4K rwxsR--    [ ism shmid=0x0 ]
 FFFF80FFBC400000       2048       2048          -          -   2M r-x----  ru_RU.UTF-8.so.3 
FFFF80FFBC600000       4096       4096          -          -    - r-x----  ru_RU.UTF-8.so.3
FFFF80FFBCA00000        612         40          -          -    - r-x----  ru_RU.UTF-8.so.3
FFFF80FFBCAA9000          8          8          -          -    - rw-----  ru_RU.UTF-8.so.3
FFFF80FFBCC00000       2048       2048          -          -   4K r-x----  en_US.UTF-8.so.3
FFFF80FFBCE00000       2048          -          -          -    - r-x----  en_US.UTF-8.so.3
 FFFF80FFBD000000       2048       2048          -          -   2M r-x----  en_US.UTF-8.so.3 
FFFF80FFBD200000        612         24          -          -    - r-x----  en_US.UTF-8.so.3
FFFF80FFBD2A9000          8          8          -          -    - rw-----  en_US.UTF-8.so.3
FFFF80FFBD400000         32         32          -          -   4K r-x----  libresolv.so.2
FFFF80FFBD408000        336         72          -          -    - r-x----  libresolv.so.2
FFFF80FFBD55C000          4          4          -          -   4K rw-----  libresolv.so.2
FFFF80FFBD55D000          4          4          -          -    - rw-----  libresolv.so.2
FFFF80FFBD55E000          4          -          -          -    - rw-----  libresolv.so.2
FFFF80FFBD5F0000          4          4          -          -   4K rwx----    [ anon ]
FFFF80FFBD5F1000          4          4          -          -    - rwx----    [ anon ]
FFFF80FFBD5F2000          4          4          4          -   4K rwx----    [ anon ]
FFFF80FFBD5F3000         12          8          -          -    - rwx----    [ anon ]
FFFF80FFBD600000         32         32          -          -   4K r-x----  libkrb5support.so.0.1
FFFF80FFBD608000         32          4          -          -    - r-x----  libkrb5support.so.0.1
FFFF80FFBD710000          4          4          -          -   4K rw-----  libkrb5support.so.0.1
FFFF80FFBD7D0000         20         20          -          -   4K r-x----  liblber-2.4.so.2.8.3
FFFF80FFBD7D5000         76         12          -          -    - r-x----  liblber-2.4.so.2.8.3
FFFF80FFBD7F8000          4          4          -          -    - rw-----  liblber-2.4.so.2.8.3
FFFF80FFBD800000         12         12          -          -   4K r-x----  libcom_err.so.3.0
FFFF80FFBD903000          4          4          -          -   4K rw-----  libcom_err.so.3.0
FFFF80FFBDA00000         32         32          -          -   4K r-x----  libkrb5.so.3.3
FFFF80FFBDA08000       1224        148          -          -    - r-x----  libkrb5.so.3.3
FFFF80FFBDC3A000         12         12          -          -    - rw-----  libkrb5.so.3.3
FFFF80FFBDC3D000          4          4          -          -   4K rw-----  libkrb5.so.3.3
FFFF80FFBDC3E000          4          4          -          -    - rw-----  libkrb5.so.3.3
FFFF80FFBDC3F000          4          4          -          -   4K rw-----  libkrb5.so.3.3
FFFF80FFBDC40000          8          8          -          -    - rw-----  libkrb5.so.3.3
FFFF80FFBDC42000          4          4          -          -   4K rw-----  libkrb5.so.3.3
FFFF80FFBDC43000          4          4          -          -    - rw-----  libkrb5.so.3.3
FFFF80FFBDC44000         12         12          -          -   4K rw-----  libkrb5.so.3.3
FFFF80FFBDC47000          8          8          -          -    - rw-----  libkrb5.so.3.3
FFFF80FFBDE00000          4          4          -          -   4K r-x----  libnsl.so.1
FFFF80FFBDE01000        196        132          -          -    - r-x----  libnsl.so.1
FFFF80FFBDE32000          8          8          -          -   4K r-x----  libnsl.so.1
FFFF80FFBDE34000        184         76          -          -    - r-x----  libnsl.so.1
FFFF80FFBDE62000         28         28          -          -   4K r-x----  libnsl.so.1
FFFF80FFBDE69000        116          8          -          -    - r-x----  libnsl.so.1
FFFF80FFBDF86000          8          8          4          -   4K rw-----  libnsl.so.1
FFFF80FFBDF88000          4          4          -          -    - rw-----  libnsl.so.1
FFFF80FFBDF89000         28         16          -          -    - rw-----  libnsl.so.1
FFFF80FFBE000000         28         28          -          -   4K r-x----  libc.so.1
FFFF80FFBE007000        904        344          -          -    - r-x----  libc.so.1
FFFF80FFBE0E9000          4          4          -          -   4K r-x----  libc.so.1
FFFF80FFBE0EA000        128         92          -          -    - r-x----  libc.so.1
FFFF80FFBE10A000         12         12          -          -   4K r-x----  libc.so.1
FFFF80FFBE10D000         16          8          -          -    - r-x----  libc.so.1
FFFF80FFBE111000          4          4          -          -   4K r-x----  libc.so.1
FFFF80FFBE112000         68         60          -          -    - r-x----  libc.so.1
FFFF80FFBE123000         12         12          -          -   4K r-x----  libc.so.1
FFFF80FFBE126000         56         36          -          -    - r-x----  libc.so.1
FFFF80FFBE134000         12         12          -          -   4K r-x----  libc.so.1
FFFF80FFBE137000         20         16          -          -    - r-x----  libc.so.1
FFFF80FFBE13C000          4          4          -          -   4K r-x----  libc.so.1
FFFF80FFBE13D000        148         68          -          -    - r-x----  libc.so.1
FFFF80FFBE162000          4          4          -          -   4K r-x----  libc.so.1
FFFF80FFBE163000          4          4          -          -    - r-x----  libc.so.1
FFFF80FFBE164000          8          8          -          -   4K r-x----  libc.so.1
FFFF80FFBE166000         52         32          -          -    - r-x----  libc.so.1
FFFF80FFBE173000          4          4          -          -   4K r-x----  libc.so.1
FFFF80FFBE174000          4          -          -          -    - r-x----  libc.so.1
FFFF80FFBE175000         64         64          -          -   4K r-x----  libc.so.1
FFFF80FFBE185000          4          4          -          -    - r-x----  libc.so.1
FFFF80FFBE186000         12         12          -          -   4K r-x----  libc.so.1
FFFF80FFBE189000         36          8          -          -    - r-x----  libc.so.1
FFFF80FFBE192000          8          8          -          -   4K r-x----  libc.so.1
FFFF80FFBE194000        180         76          -          -    - r-x----  libc.so.1
FFFF80FFBE1C1000         20         20          -          -   4K r-x----  libc.so.1
FFFF80FFBE1C6000          8          -          -          -    - r-x----  libc.so.1
FFFF80FFBE2C8000         12         12          4          -   4K rw-----  libc.so.1
FFFF80FFBE2CB000          4          -          -          -    - rw-----  libc.so.1
FFFF80FFBE2CC000         24         24          4          -   4K rw-----  libc.so.1
FFFF80FFBE2D2000         16         16          -          -    - rw-----  libc.so.1
FFFF80FFBE2D6000         12         12          4          -   4K rw-----  libc.so.1
FFFF80FFBE2D9000          8          4          -          -    - rw-----  libc.so.1
FFFF80FFBE400000         40         40          -          -   4K r-x----  libsocket.so.1
FFFF80FFBE40A000         24         20          -          -    - r-x----  libsocket.so.1
FFFF80FFBE410000          4          4          -          -   4K r-x----  libsocket.so.1
FFFF80FFBE480000         32         32          -          -   4K r-x----  libldap-2.4.so.2.8.3
FFFF80FFBE488000        464         48          -          -    - r-x----  libldap-2.4.so.2.8.3
FFFF80FFBE50C000          4          4          -          -   4K rw-----  libldap-2.4.so.2.8.3
FFFF80FFBE50D000          4          4          -          -    - rw-----  libldap-2.4.so.2.8.3
FFFF80FFBE511000          4          4          -          -   4K rw-----  libsocket.so.1
FFFF80FFBE560000          8          8          -          -   4K r-x----  libm.so.2
FFFF80FFBE562000        504        136          -          -    - r-x----  libm.so.2
FFFF80FFBE5EF000          4          4          -          -   4K rw-----  libm.so.2
FFFF80FFBE5F0000          4          4          -          -    - rw-----  libm.so.2
FFFF80FFBE600000         32         32          -          -   4K r-x----  libgssapi_krb5.so.2.2
FFFF80FFBE608000        380         52          -          -    - r-x----  libgssapi_krb5.so.2.2
FFFF80FFBE767000         12         12          -          -    - rw-----  libgssapi_krb5.so.2.2
FFFF80FFBE76A000          4          -          -          -    - rw-----  libgssapi_krb5.so.2.2
 FFFF80FFBE800000       2048       2048          -          -   2M r-x----  libcrypto.so.1.0.0 
FFFF80FFBEA00000        436          -          -          -    - r-x----  libcrypto.so.1.0.0
FFFF80FFBEB6C000        160        156          -          -    - rw-----  libcrypto.so.1.0.0
FFFF80FFBEB94000          8          -          -          -    - rw-----  libcrypto.so.1.0.0
FFFF80FFBEB96000          4          4          -          -   4K rw-----  libcrypto.so.1.0.0
FFFF80FFBEC00000         32         32          -          -   4K r-x----  libssl.so.1.0.0
FFFF80FFBEC08000        452         88          -          -    - r-x----  libssl.so.1.0.0
FFFF80FFBED78000         44         44          -          -    - rw-----  libssl.so.1.0.0
FFFF80FFBEDE0000          4          4          4          -   4K rw-----    [ anon ]
FFFF80FFBEDE1000         16         16          -          -    - rw-----    [ anon ]
FFFF80FFBEDE5000          4          4          4          -   4K rw-----    [ anon ]
FFFF80FFBEDE6000          4          4          -          -    - rw-----    [ anon ]
FFFF80FFBEDE7000         20         20         16          -   4K rw-----    [ anon ]
FFFF80FFBEDEC000         12         12          -          -    - rw-----    [ anon ]
FFFF80FFBEDEF000          4          4          -          -   4K rw-----    [ anon ]
FFFF80FFBEE00000         24         24          -          -   4K r-x----  libpam.so.1
FFFF80FFBEE06000         16          4          -          -    - r-x----  libpam.so.1
FFFF80FFBEF0A000          4          4          -          -    - rw-----  libpam.so.1
 FFFF80FFBF000000       2048       2048          -          -   2M r-x----  libxml2.so.2 
FFFF80FFBF200000        672          4          -          -    - r-x----  libxml2.so.2
FFFF80FFBF3A8000         44         44          -          -    - rw-----  libxml2.so.2
FFFF80FFBF3B3000          4          -          -          -    - rw-----  libxml2.so.2
FFFF80FFBF400000         12         12          -          -   4K r-x----  mpss.so.1
FFFF80FFBF4F0000         64          8          -          -    - rwx----    [ anon ]
FFFF80FFBF503000          4          4          -          -    - rw-----  mpss.so.1
FFFF80FFBF530000         64         36          -          -    - rwx----    [ anon ]
FFFF80FFBF550000         64         64          -          -    - rwx----    [ anon ]
FFFF80FFBF570000          4          4          -          -   4K rw-----    [ anon ]
FFFF80FFBF571000         60          4          -          -    - rw-----    [ anon ]
FFFF80FFBF588000         32         32          -          -   4K r-x----  ld.so.1
FFFF80FFBF590000        324        324          -          -    - r-x----  ld.so.1
FFFF80FFBF600000         20         20         20         20   4K rwxsR--    [ ism shmid=0x2 ]
FFFF80FFBF60F000          4          4          4          -   4K rwxs---    [ anon ]
FFFF80FFBF620000          4          4          -          -   4K r-x----  methods_unicode.so.3
FFFF80FFBF621000         60         40          -          -    - r-x----  methods_unicode.so.3
FFFF80FFBF630000          4          4          -          -    - rw-----  methods_unicode.so.3
FFFF80FFBF640000         12         12          -          -   4K r-x----  libpthread.so.1
FFFF80FFBF650000         16         16          -          -   4K r-x----  libz.so.1
FFFF80FFBF654000        108          -          -          -    - r-x----  libz.so.1
FFFF80FFBF67F000          4          4          -          -   4K rw-----  libz.so.1
FFFF80FFBF690000          4          4          -          -   4K r-x----  libdl.so.1
FFFF80FFBF6A0000          4          4          -          -    - rw-----    [ anon ]
FFFF80FFBF6A1000          8          8          -          -   4K rw-----    [ anon ]
FFFF80FFBF6A3000          4          4          -          -    - rw-----    [ anon ]
FFFF80FFBF6A4000          8          8          -          -   4K rw-----    [ anon ]
FFFF80FFBF6A6000          8          8          -          -    - rw-----    [ anon ]
FFFF80FFBF6A8000          8          8          -          -   4K rw-----    [ anon ]
FFFF80FFBF6AA000          4          4          -          -    - rw-----    [ anon ]
FFFF80FFBF6AB000         20         20          -          -   4K rw-----    [ anon ]
FFFF80FFBF6C0000          4          4          -          -   4K rw-----    [ anon ]
FFFF80FFBF6C1000         32         32          -          -    - rw-----    [ anon ]
FFFF80FFBF6C9000          8          8          4          -   4K rw-----    [ anon ]
FFFF80FFBF6CB000          8          8          -          -    - rw-----    [ anon ]
FFFF80FFBF6CD000          8          8          4          -   4K rw-----    [ anon ]
FFFF80FFBF6CF000          4          4          -          -    - rw-----    [ anon ]
FFFF80FFBF6D2000          4          4          -          -   4K r--s---    [ anon ]
FFFF80FFBF6D3000          8          8          -          -    - r--s---    [ anon ]
FFFF80FFBF6E1000          4          4          4          -   4K rwx----  ld.so.1
FFFF80FFBF6E2000         12         12          -          -    - rwx----  ld.so.1
FFFF80FFBF6E5000          4          4          -          -    - rwx----  ld.so.1
FFFF80FFBF6E6000          4          4          -          -   4K rwx----  ld.so.1
FFFF80FFBF6E8000          4          4          -          -   4K r--s---    [ anon ]
FFFF80FFBF6F8000          4          4          -          -    - r--s---    [ anon ]
FFFF80FFBFFF8000         32         32         28          -   4K rw-----    [ stack ]
---------------- ---------- ---------- ---------- ----------
        total Kb    4404420    4393480    4368756    4366612


Синий СлонИ если он стартанул, то нехватки именно huge_pages быть не должно, т..к shared_buffers отъел свое при старте а все остальное пользуется обычной памятью ?

https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt Pages that are used as huge pages are reserved inside the kernel and cannot
be used for other purposes. Huge pages cannot be swapped out under
memory pressure.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729204
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij, Scott Tiger, спасибо за ответы.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729208
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос,

если shared_buffers=15Gb

Провел pgbench тесты, с huge_pages скорость выше на 2%.

Есть ли смысл включать huge_pages?

На сайте postgrespro не нашел рекомендаций на эту тему.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729224
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонПровел pgbench тесты, с huge_pages скорость выше на 2%.
Есть ли смысл включать huge_pages?

Конечно. Это ж +2% почти бесплатно (за счёт незначительного усложнения администрирования). Ваш сервер сколько стоит?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729226
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scott TigerСиний СлонПровел pgbench тесты, с huge_pages скорость выше на 2%.
Есть ли смысл включать huge_pages?

Конечно. Это ж +2% почти бесплатно (за счёт незначительного усложнения администрирования). Ваш сервер сколько стоит?


тыс 100 наверное, не смотрел сметы...


Ну мысль вашу понял ;)
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39729906
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kira ivanovСиний Слонвыставляйте себя клоуном в других темах пожалуйста.

да это вы, сударь

Синий СлонЧто будет если постгрес съест более 14.3 Гб ?

Упадет ли он?


не упадет, oom killer его прибьет :)

а если серьезно то читайте о связке huge+shaded+wall, если huge < shared+wall - падаем, с большой вероятностью, если больше - то бестолку
при явном huge_page = on


А WAL надо один сегмент учитывать или как?
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39731347
kira ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонА WAL надо один сегмент учитывать или как?

тут речь о wal_buffers, если они в shared то прибавлять не надо, если указаны явно, то надо
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39731458
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kira ivanovСиний СлонА WAL надо один сегмент учитывать или как?

тут речь о wal_buffers, если они в shared то прибавлять не надо, если указаны явно, то надо
Странно фраза построена.
wal_buffers всегда в shared memory.
В shared memory вообще много всякого
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39733825
kira ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

а всегда нужно читать исходники настраивая сервер ?
многим интуитивно не понятно складываются эти параметры или нет
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39733832
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kira ivanovмногим интуитивно не понятно складываются эти параметры или нет
shared memory > shared_buffers
Общий объём shared memory требуемый при старте - комбинация весьма большого числа параметров начиная с max_connections, и в том числе с возможностью требовать дополнительную память в shared_preload_libraries из расширений. Как, например, pg_stat_statements запрашивает для себя отдельный кусочек в shared memory.

Поэтому складываются для получения какого именно значения? Если хотите посчитать сегмент shared memory - выдайте с запасом или стартуйте с низким уровнем детализации логов - там будет написано сколько памяти насчитали необходимым с точностью до байта.
А wal_buffer в shared_buffers не входит. Параметр shared_buffers - это только объём памяти под буфер страниц. И кстати даже не считая память, требующуюся для управления этим самым буфером.

Исходники можете не читать, это мне пока нравится ссылаться на первоисточник, где могу и это уместно.
...
Рейтинг: 0 / 0
huge_pages, что если они закончатся?
    #39733833
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijИсходники можете не читать
но в целом - не лишне хоть иногда это делать.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / huge_pages, что если они закончатся?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]