|
|
|
наличие ошибок выделения памяти в postgresql.conf
|
|||
|---|---|---|---|
|
#18+
Добрый день, хочу показать свои конфиги постгре и узнать не допустил ли я каких грубых ошибок по выделению памяти, буду рад любым советам. В целом система справляется, но после запуска нового проекта, в котором большое число селектов с сортировкой из партицированых таблиц (2-4Гб), система стала подтормаживать. Железо: материнка - intel S2600CP DDR - 64Gb CPU - Intel Xeon CPU E5-2609 v2 @ 2.50GHz HDD - HDD 1 Tb SAS 2.0 Toshiba < MG03SCA100 > 3.5" 7200rpm 64Mb Система работает только для postgresql, больше никаких приложений не установлено. С сервером бд в основном работают веб-приложения, а также синхронизация. postgresql.conf: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2015, 12:06 |
|
||
|
наличие ошибок выделения памяти в postgresql.conf
|
|||
|---|---|---|---|
|
#18+
gk2, У вас всего 64гб памяти. 12 вы отдали шареным буферам — 52гб. Оставшаяся память используется сессиями по необходимости и регулируется параметром `work_mem`. Это то кол-во памяти, которое может использовать _узел_ в плане запроса, т.е. если у вас есть Hash Join с последующей сортировкой, то бует использоваться `work_mem` * 2 памяти. Вы почему-то не показали `max_connections`, но при умолчательных 100, вы должны иметь хотя бы 100гб свободной памяти, хотя лучше умножать на 2 — 200гб. У вас же — всего 52гб, свопинг будет при даже не пиковых нагрузках. Я бы сделал следующее: `work_mem` уменьшил, где-то до 16Mb. Для больших запросов можно поменять параметр в рамках сессии `checkpoint_completion_target` увеличил бы до 0.8 обязательно бы использовал pooler (pgbouncer, pg_pool), если его еще нет — открытие новых сессий к Postgres'у происходит долго уменьшил бы `autovacuum_%_scale_factor` параметры, на порядок увеличил бы `autovacuum_max_workers`, раза в 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2015, 12:35 |
|
||
|
наличие ошибок выделения памяти в postgresql.conf
|
|||
|---|---|---|---|
|
#18+
vyegorov, большое спасибо за ответ! Моя ошибка, что я не учёл своё кол-во соединений (max_connections=400). Я ориентировался по примерным данным из доки Васильева... Сейчас я выставил work_mem в 64Mb теперь кол-во свободной памяти на сервере в районе 2Gb, а раньше 200-300Mb. Прям большой производительности не получили, но вроде чуть-чуть быстрее стало работать новое приложение. Еще выставил по вашей рекомендации checkpoint_completion_target = 0.8, скоро собираюсь заняться настройками автовакуума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2015, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39072201&tid=1997722]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 505ms |

| 0 / 0 |
