Направляет несколько процессов ruby ​​на сервер ec2, что приводит к 100% загрузке ЦП - PullRequest
0 голосов
/ 25 августа 2018

У меня есть приложение Rails, которое использует процессор на 100% большую часть времени. Я не могу понять, почему такая большая нагрузка на сервер. Я использую сервер приложений PUMA с конфигурацией по умолчанию и запускаю несколько фоновых заданий, используя sucker-punch gem. Имеется 7 файлов, в которых используется задание на присоску с 5 работниками

include SuckerPunch::Job 
workers 5

Я выполнил запрос top -i и обнаружил на сервере следующие процессы. Я вижу несколько команд ruby ​​на сервере. Может кто-то сказать, это нормальное поведение на сервере или что-то не так.

enter image description here

1 Ответ

0 голосов
/ 25 августа 2018

Некоторые способы уменьшить конфликт ресурсов

Ваша загрузка пользовательского пространства высока (~ 48%), поэтому вы, вероятно, захотите сократить количество работников в вашем веб-приложении, увеличить количество процессоров, доступных в вашем экземпляре, перейти на версию Ruby с лучший параллелизм и реальная поддержка многоядерных процессоров (например, Rubinius или JRuby) или некоторая комбинация этих опций. В зависимости от того, что на самом деле делает ваш код, вам также может понадобиться перепроектировать приложение, чтобы разгрузить дорогой ввод-вывод с сервера приложений.

Кроме того, ваше время кражи довольно велико (~ 41%), поэтому ваш экземпляр EC2, вероятно, перегружен. Простое перемещение приложения в менее загруженный экземпляр может высвободить достаточные ресурсы для сокращения времени ожидания приложения.

...