質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

gunicorn.service: Failed with result 'oom-kill'となり、502 Bad Gatewayとでる

somak
somak

総合スコア22

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

2回答

0グッド

0クリップ

383閲覧

投稿2022/11/23 09:39

前提

EC2上でDjango+nginx+gunicornの環境を構築してみたのですが、502 Bad Gatewayと出てきます。

$sudo systemctl status gunicorn.service

でgunicorn.serviceの状態を表示するとActive: failed (Result: oom-kill)となっており、gunicornが起動していませんでした。

実現したいこと

Active: failed (Result: oom-kill)を解決し、gunicornを起動したい。

発生している問題・エラーメッセージ

$sudo systemctl status gunicorn.service

gunicorn.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled) Active: failed (Result: oom-kill) since Wed 2022-11-23 09:13:34 UTC; 1min 10s ago Process: 56834 ExecStart=/home/ubuntu/ll_env/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ubuntu/project/project.sock project.wsgi:applic> Main PID: 56834 (code=exited, status=0/SUCCESS) CPU: 10.299s Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: File "/home/ubuntu/ll_env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: self.reap_workers() Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: File "/home/ubuntu/ll_env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 530, in reap_workers Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: self.log.warning( Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: File "/home/ubuntu/ll_env/lib/python3.8/site-packages/gunicorn/glogging.py", line 261, in warning Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: self.error_log.warning(msg, *args, **kwargs) Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: Message: 'Worker with pid %s was terminated due to signal %s' Nov 23 09:13:34 ip-172-31-7-214 gunicorn[56834]: Arguments: (57048, 9) Nov 23 09:13:34 ip-172-31-7-214 systemd[1]: gunicorn.service: Failed with result 'oom-kill'. Nov 23 09:13:34 ip-172-31-7-214 systemd[1]: gunicorn.service: Consumed 10.299s CPU time.

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

dameo

2022/11/23 10:08

oomはOut of Memoryということなのでメモリ不足です。その方向で原因を調べてください。
somak

2022/11/24 08:05

メモリ不足ということで、https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04-jaを参考にスワップ領域を追加したのですが、上のエラーは解消されませんでした。また、 >$free -h total used free shared buff/cache available Mem: 966Mi 154Mi 715Mi 3.0Mi 95Mi 685Mi Swap: 1.0Gi 178Mi 845Mi となり、メモリの容量には空きがあるように思ったのですが、エラーは解消されませんでした。
dameo

2022/11/24 08:37

起動前の状態だけ分かっても仕方ないと思いますよ。1インスタンスでどれだけメモリを食うか、何インスタンス起動する設定になっていてそのときどれだけ使用しているか、その他のプロセスがどれだけ使っているかでしょうね。プログラムの内容によってはスワップに退避できない情報もありますし、ご自分で必要な情報を集めることもできず、他人に一から対処方法を聞かないとできないのであれば、その手段は使わない方がいいと思いますよ。

回答2

0

自己解決

開発環境では、8GBのメモリ容量があったため、メモリ不足とはなりませんでしたが、ec2のubuntu(無料枠)のメモリ容量は1GBしかなかったため、本番環境ではメモリ不足となってしまっていました。

解決方法としては、おそらく二つあると思います。
一つ目としては、本番環境のメモリ容量を増やす方法。(有料)
二つ目としては、メモリ不足が起きるコードをメモリの消費が少なくなるようコードに書き換える。

私の場合は、20MB以上のファイルの中身を変数に以下のように格納していたため、多くのメモリを消費していました。

python

1with open(filepath) as f: 2 text=f.read() 3 textの処理

そのため、ファイルの中身を一行一行とりだして処理することで、メモリの消費を少なくしました。

python

1with open(filepath) as f: 2 for line in f: 3 lineの処理

投稿2022/12/12 12:31

somak

総合スコア22

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

それは辛いですね、、、🥺

投稿2022/11/23 10:16

user_x_xxx

総合スコア22

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。