私のRailsアプリケーションには、画像のサイズ変更やS3へのアップロードなど、バックグラウンドプロセスにオフロードされる多くのタスクがあります。これらのプロセスを管理するためにdelayed_jobを使用しています。
これらのプロセス、特にPDFのサムネイル(Ghostscriptを使用)と画像のサイズ変更(ImageMagickを使用)はCPUに負荷がかかり、多くの場合100%のCPU時間を消費します。これらのジョブは、Webアプリケーション自体およびDBと同じ(RedHat Linux)サーバーで実行されているため、Webアプリケーションが応答しなくなる可能性があります。
1つの解決策は、バックグラウンドジョブのみを実行する別のサーバーを取得することです。これが最適な解決策だと思いますか?しかし、これはすぐにできることではないので、どういうわけかバックグラウンドジョブをより低いオペレーティングシステムの優先度で実行し、それによってそれらの作業を行う際に消費するCPUサイクルを減らすことができるのではないかと思います。
感謝します。