Использование памяти при пересборке значительно выше, чем в обычном режиме работы. Похоже, что повторная выпечка (rebaking) также создаёт высокую нагрузку. Если это так, то любое регулярное мониторинговое наблюдение не принесёт большой пользы: мониторинг нужен именно в моменты пиковых нагрузок, которые, к счастью, возникают только при выполнении администратором определённых действий.
Когда я работал на менее мощной, более ограниченной конфигурации оборудования, я открывал второе терминальное окно, подключался к серверу по SSH и запускал команду
vmstat 5
которая показывает изменение использования памяти во времени. Следите за столбцом swpd и сравнивайте его с настроенным объёмом подкачки (swap). Обычно сбой происходит внезапно, а не постепенно, поэтому даже анализ краткосрочных трендов не даёт большой пользы.
Если у вас есть место на диске, нет никаких причин не выделять много места под swap — половину от объёма оперативной памяти или даже столько же, сколько оперативной памяти. В данном случае swap нужен именно для обработки пиковых нагрузок. В обычном режиме использования вы не должны наблюдать активности подкачки/выгрузки страниц. Опять же, можно использовать команду vmstat 5 5, чтобы получить краткосрочную картину активности подкачки (в столбцах si и so).
Вот пример:
# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 1392140 61200 11632 76432 41 32 117 93 0 1 2 1 97 0 0
1 1 1467220 63416 324 67284 8786 20499 13178 20567 2539 8924 77 13 0 10 0
0 2 1593340 57916 1096 53832 24262 46868 29986 46889 5377 18534 44 22 0 34 0
4 0 1155632 120680 2772 86280 39111 35424 54768 37824 6987 25174 38 27 0 35 0
3 0 1102988 74096 2852 85276 11261 246 12610 271 1879 6365 86 6 0 8 0
Как видно, столбец swpd достиг пика чуть более 1,5 ГБ при настроенном объёме 2,0 ГБ. Вы также видите, что активность выгрузки страниц (so) достигла пика в том же 5-секундном интервале, а активность загрузки страниц (si) — в следующем интервале.
(Редактирование: я вижу, что у меня было настроено 2,0 ГБ подкачки, так как я ранее запускал команду free:
# free
total used free shared buff/cache available
Mem: 1009140 696504 78544 51784 234092 118436
Swap: 2097144 154628 1942516
Также видно, что в тот момент мне удавалось запускать Discourse только с 1 ГБ оперативной памяти.)