Иногда очень высокая загрузка CPU

Иногда у меня наблюдается очень высокая нагрузка на процессор. В целом работа проходит очень плавно, но бывают всплески полной загрузки CPU. В это время форум выдаёт ошибки 502 или работает ОЧЕНЬ медленно. У меня сервер Hetzner с 3 vCPU и 4 ГБ оперативной памяти.

У кого-нибудь есть идеи, что может быть причиной этого?

Вот что показывает консоль в бэкенде Hetzner:

Можете ли вы запустить htop или аналогичную утилиту на сервере, чтобы определить имя процесса, вызывающего высокую загрузку ЦП?

Выполняется периодический процесс. У вас есть файл подкачки? У вас заканчивается оперативная память. Я бы добавил 2–4 ГБ файла подкачки.

Мне пришлось подождать, чтобы поймать событие с высокой загрузкой CPU. Я запустил htop и сделал несколько скриншотов (я никогда им не пользовался, поэтому не знаю, что именно на них изображено).

Это первое, что нужно сделать.

Отсутствие свопинга здесь выглядит не лучшим образом — вы находитесь в опасной близости от серьёзных проблем.

@GeorgSeifert, вам удалось решить вашу проблему?

Если добавление файла подкачки (swap) является решением, пожалуйста, отметьте сообщение от @pfaffman как решение. Это кнопка в меню сообщения, которая выглядит как квадрат с галочкой внутри.

Я попробовал другой сервер с большим объёмом оперативной памяти, но более медленным процессором и меньшей стоимостью. Я буду следить за ним в течение нескольких дней.

Вы добавили swap? Это необходимо.

Я думал, что для начала будет достаточно удвоить объём физической оперативной памяти.

На странице Discourse указано, что для запуска достаточно сервера с 1–2 ГБ ОЗУ. Поэтому я подумал, что с 4 ГБ я в безопасности? Теперь у него 8 ГБ.

Не уверен, что на нашем форуме много трафика (я просто проверил отчёты: там указано 15 авторизованных и 1000 неавторизованных пользователей).

Этого достаточно — без плагинов и некоторых других вещей, таких как пользователи и активный администратор/модератор. Это абсолютный минимум, и даже сам форум может работать, но перестроение (rebuilding) не завершится успешно.

У нас здесь есть несколько тем по этому вопросу, и сложился своего рода консенсус: 2 ГБ достаточно для небольших форумов, если также есть swap-файл.

@pfaffman напомни мне.. не создаёт ли команда ./discourse-setup файл подкачки автоматически?

@GeorgSeifert следовали ли вы официальным инструкциям по установке для настройки вашего сайта? Если нет, то нам будет сложно оказать вам поддержку здесь. Как все вам уже говорили, вам нужен файл подкачки, независимо от того, сколько у вас памяти, иначе вы столкнётесь с трудностями.

Часто всё равно требуется файл подкачки, даже если оперативной памяти кажется достаточно. Думаю, дело в том, что процессы видят, что доступно больше оперативной памяти, и забирают её, а когда оперативная память становится действительно нужна, она уже недоступна для других процессов.

Создаёт, но только если у вас 2 ГБ или меньше.

Скорее всего, он следовал стандартной инструкции по установке. Непонятно, почему у него заканчивается оперативная память, но это так. Есть вероятность, что добавление физической оперативной памяти решит проблему.

Я только что сделал то, что сказано на странице установки.

Итак, как мне проверить, включен ли у меня swap или нет?

Запустите команду free -h

На ваших скриншотах htop отображается 0 swap.

У меня действительно нет swap-раздела.

Может ли что-то быть не так с моей установкой, из-за чего она потребляет слишком много памяти?

Увеличение объёма оперативной памяти, похоже, временно решило проблему.

Если у вас есть swap-раздел, как и должно быть, вам не потребуется так много оперативной памяти.

Обратите внимание, что установка и обновление требуют значительно больше памяти, чем обычная работа. memory = swap + RAM.