|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Добрый день. Читаю различные статьи по huge_pages. Рекомендуют ставить grep ^VmPeak /proc/11491/status разделенную на grep ^Hugepagesize /proc/meminfo Т.е. в моем случае это 7000. Но 7000 * 2048 = 14.3Гб. А на сервере ОЗУ на порядок больше. Что будет если постгрес съест более 14.3 Гб ? Упадет ли он? Для меня тема huge_pages незнакома, разбираюсь потихоньку... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:55 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Прирост от huge_pages вроде 5-10% должен быть... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:56 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
В общем, сколько их ставить в ОС? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 17:14 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий СлонВ общем, сколько их ставить в ОС? 330 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 18:04 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Если, например, 80% от памяти поставить под huge_pages, это норм? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 18:20 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
mefmanСиний СлонВ общем, сколько их ставить в ОС? 330 выставляйте себя клоуном в других темах пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 18:22 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий СлонЧто будет если постгрес съест более 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 18:48 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий Слонвыставляйте себя клоуном в других темах пожалуйста. да это вы, сударь Синий СлонЧто будет если постгрес съест более 14.3 Гб ? Упадет ли он? не упадет, oom killer его прибьет :) а если серьезно то читайте о связке huge+shaded+wall, если huge < shared+wall - падаем, с большой вероятностью, если больше - то бестолку при явном huge_page = on ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 18:51 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
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 Подскажите, как поставить больше? Что это за ограничение такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 19:06 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий Слон, видимо нет больше свободной памяти. Изменение sysctl не вытесняет page cache, например. Посмотрите во free что где, возможно сбросьте page cache вручную. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 19:29 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
MelkijСиний Слон, видимо нет больше свободной памяти. Изменение sysctl не вытесняет page cache, например. Посмотрите во free что где, возможно сбросьте page cache вручную. Просто требовалась перезагрузка. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 10:47 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
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 отъел свое при старте а все остальное пользуется обычной памятью ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 10:51 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий Слон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 отъел свое при старте а все остальное пользуется обычной памятью ? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:22 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий СлонПравильно ли я понял что постгрес 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.
Синий СлонИ если он стартанул, то нехватки именно 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:26 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Melkij, Scott Tiger, спасибо за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:30 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Еще вопрос, если shared_buffers=15Gb Провел pgbench тесты, с huge_pages скорость выше на 2%. Есть ли смысл включать huge_pages? На сайте postgrespro не нашел рекомендаций на эту тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:34 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий СлонПровел pgbench тесты, с huge_pages скорость выше на 2%. Есть ли смысл включать huge_pages? Конечно. Это ж +2% почти бесплатно (за счёт незначительного усложнения администрирования). Ваш сервер сколько стоит? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:56 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Scott TigerСиний СлонПровел pgbench тесты, с huge_pages скорость выше на 2%. Есть ли смысл включать huge_pages? Конечно. Это ж +2% почти бесплатно (за счёт незначительного усложнения администрирования). Ваш сервер сколько стоит? тыс 100 наверное, не смотрел сметы... Ну мысль вашу понял ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:57 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
kira ivanovСиний Слонвыставляйте себя клоуном в других темах пожалуйста. да это вы, сударь Синий СлонЧто будет если постгрес съест более 14.3 Гб ? Упадет ли он? не упадет, oom killer его прибьет :) а если серьезно то читайте о связке huge+shaded+wall, если huge < shared+wall - падаем, с большой вероятностью, если больше - то бестолку при явном huge_page = on А WAL надо один сегмент учитывать или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 13:50 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Синий СлонА WAL надо один сегмент учитывать или как? тут речь о wal_buffers, если они в shared то прибавлять не надо, если указаны явно, то надо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 15:25 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
kira ivanovСиний СлонА WAL надо один сегмент учитывать или как? тут речь о wal_buffers, если они в shared то прибавлять не надо, если указаны явно, то надо Странно фраза построена. wal_buffers всегда в shared memory. В shared memory вообще много всякого ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 21:21 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
Melkij, а всегда нужно читать исходники настраивая сервер ? многим интуитивно не понятно складываются эти параметры или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 22:49 |
|
huge_pages, что если они закончатся?
|
|||
---|---|---|---|
#18+
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 - это только объём памяти под буфер страниц. И кстати даже не считая память, требующуюся для управления этим самым буфером. Исходники можете не читать, это мне пока нравится ссылаться на первоисточник, где могу и это уместно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 23:40 |
|
|
start [/forum/topic.php?fid=53&fpage=48&tid=1995494]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 155ms |
0 / 0 |