Сообщество / Базы данных

нужен ли swap на сервере с базой или он только маскирует нехватку ram

M
mike_pg
Junior
Сообщения: 14
Репутация: 5
Дата регистрации:
15.09.2026
АВТОР ТЕМЫ18 сент. 2026 г., 21:00 (GMT+3)
После моих плясок с postgres oom задумался про swap. С одной стороны, был бы swapoom killer, может, не пришёл бы и не убил базу. С другой — читал, что swap на сервере с базой это зло: система начинает свопать горячие страницы, и всё превращается в кисель, «работает, но невыносимо». Так swap на сервере с postgres — подстраховка или самообман? И если ставить, то сколько на 8 гигов?
0
lexa92
Junior
Сообщения: 94
Репутация: 58
Дата регистрации:
09.08.2026
19 сент. 2026 г., 08:50 (GMT+3)
mike_pg добавлю практику: zram как swap на маленьком сервере иногда лучше файла на диске — сжимает в памяти, быстрее, диск не насилует. но это уже тонкость. базовое ты понял: swap = парашют, а не память. и swappiness низкий, чтоб не свопало горячее без нужды.
3
pavel_63
Junior
Сообщения: 54
Репутация: 33
Дата регистрации:
13.08.2026
19 сент. 2026 г., 09:30 (GMT+3)
mike_pg дядькино наблюдение: swap я всегда ставлю небольшой, хоть на базе, хоть на винсервере — именно как ремень безопасности, а не как «добавил памяти». видел, как без swap сервис ловит oom и падает намертво среди дня, и как с маленьким swap он пыхтит, но доживает до того, что человек прибегает и чинит. кисель — это когда swap большой и его дают жрать. маленький и с низким swappiness — страховка.
1
nesterov
Junior
Сообщения: 25
Репутация: 20
Дата регистрации:
08.08.2026
19 сент. 2026 г., 20:20 (GMT+3)
mike_pg swap на сервере с базой — это не «быстрее» и не «больше памяти», это буфер, чтобы вместо мгновенной смерти от oom получить время заметить и среагировать. небольшой swap (1-2 гб на 8) полезен именно этим: пик пережился, вы увидели, поправили. но если база постоянно живёт в свопе — это не подстраховка, это диагноз: памяти мало, и swap только растягивает агонию. настройте vm.swappiness пониже, чтобы система не свопала без нужды, и относитесь к активному свопу как к сигналу, а не как к решению.
0
gleb_tomsk
Junior
Сообщения: 54
Репутация: 35
Дата регистрации:
21.08.2026
19 сент. 2026 г., 21:00 (GMT+3)
mike_pg согласен с nesterov, добавлю цифрами: swappiness по умолчанию часто 60, для сервера с базой я ставлю 10, чтобы ядро свопало только в крайности. 1-2 гб swap как парашют — норм. но если ты видишь, что swap стабильно занят на сотни мегабайт под нагрузкой — это не «swap помогает», это «пора чинить shared_buffers/work_mem или тариф». swap маскирует ровно до момента, когда упрёшься, просто медленнее и обиднее.
0
M
mike_pg
Junior
Сообщения: 14
Репутация: 5
Дата регистрации:
15.09.2026
19 сент. 2026 г., 21:40 (GMT+3)
Понял, спасибо. Значит swap 1-2 гб как парашют + swappiness 10, и относиться к занятому свопу как к сигналу «чини по-настоящему», а не как к добавке памяти. nesterov «растягивает агонию» — вот этого и боялся, теперь буду в netdata смотреть, не живёт ли база в свопе постоянно. Поставил маленький, oom пока не приходил, но теперь хоть будет запас на среагировать.
0
M
mike_pg
Junior
Сообщения: 14
Репутация: 5
Дата регистрации:
15.09.2026
19 сент. 2026 г., 21:50 (GMT+3)
lexa92 про zram не знал, гляну, у меня как раз диск не хочется мучить лишней записью. Пока поставил обычный swap 2 гб + swappiness 10, в netdata видно, что в него почти не лезет под нормой — значит парашют на месте, но не «живёт в свопе». То что надо.
0