У меня есть приложение Rails, которое большую часть времени загружает процессор на 100%. Я не могу понять, почему на сервере такая большая нагрузка. Я использую веб-сервер Puma с конфигурацией по умолчанию и выполняю несколько фоновых заданий с использованием драгоценного камня запрещенный прием. Есть 7 файлов, в которых используются работы по перфорации с 5 рабочими:
include SuckerPunch::Job
workers 5
Я выполнил запрос top -i и обнаружил, что на сервере запущены следующие процессы. Я вижу несколько команд Ruby на сервере. Может ли кто-нибудь сказать мне, нормально ли это поведение на сервере или что-то не так?

Я использую сервер приложений Puma, и я также использую гем sucker punch для нескольких фоновых заданий.
Итак, какой конфиг у Puma? сколько рабочих вы используете? а что с конфигом sucker_punch? Кажется, у вас слишком много рабочих на обоих
Я использую конфигурацию PUMA по умолчанию на сервере AWS EC2 и конфигурацию sucker-punch по умолчанию. Но есть 7 файлов, в которых используется работа по перфорации с 5 рабочими в каждом. Я добавил подробную информацию о самом вопросе для удобства чтения
запустите top -c, он добавляет столбец с дополнительной информацией о команде, создавшей каждый процесс





Загрузка вашего пользовательского пространства высока (~ 48%), поэтому вы, вероятно, захотите уменьшить количество рабочих в своем веб-приложении, увеличить количество процессоров, доступных на вашем экземпляре, перейти на версию Ruby с лучшим параллелизмом и реальная многоядерная поддержка (например, Rubinius или JRuby) или некоторая комбинация этих опций. В зависимости от того, что на самом деле делает ваш код, вам также может потребоваться изменить архитектуру приложения, чтобы разгрузить дорогостоящий ввод-вывод с сервера приложений.
Кроме того, ваше время кражи довольно велико (~ 41%), поэтому ваш экземпляр EC2, вероятно, перегружен. Простое перемещение приложения в менее загруженный экземпляр может высвободить достаточно ресурсов, чтобы сократить время ожидания приложения.
Спасибо, Тодд. Ваше понимание пользовательского пространства и украденного времени помогло найти направление, которое снижает загрузку ЦП.
Я не уверен, какой сервер приложений вы используете и его конфигурацию. Думаю, у вас много рабочих настроено. Вы должны предоставить дополнительную информацию о сервере приложений (пума? Пассажир? Единорог?)