質問編集履歴
3
いただいた質問に対する追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,98 +1,42 @@
|
|
1
1
|
### 前提
|
2
|
-
|
3
|
-
|
4
2
|
EC2(Linux)にNginx + Gunicorn + SupervisorでDjangoアプリケーションをデプロイしました。
|
5
3
|
supervisorでデーモン化ができているか確認したところ、
|
6
4
|
gunicornのプロセスが、CLOSE_WAITとESTABLISHEDを繰り返していることが分かりました。
|
7
5
|
CLOSEした場合、新たにプロセスが作成されるのは正しい挙動と思うのですが、CLOSEされている原因が不明な状況です。
|
8
6
|
(以下、固有のサービス名をXXXと置き換えています。)
|
9
|
-
|
10
7
|
### 実現したいこと
|
11
|
-
|
12
8
|
- supervisorでgunicornをデーモン化したい。
|
13
|
-
|
14
9
|
大元の目的としては、あるタイミングでDNS経由でサーバ内のコンテンツ(Webサイト)へ接続ができなくなったため、原因の確認を進めたところ発覚した次第です。
|
15
10
|
(この状況が直接原因か判断できませんが、supervisorを使用せず手動でgunicornを起動していた際は接続可能でした。)
|
16
|
-
|
17
11
|
### 発生している問題・エラーメッセージ
|
18
|
-
|
19
12
|
gunicornで指定しているポート(3000)を確認した結果、
|
20
13
|
次々に新たなプロセスIDが作成されていました。(この間特に操作等はなし。)
|
21
14
|
```ここに言語を入力
|
22
|
-
[ec2-user@ip-
|
15
|
+
[ec2-user@ip-~~ etc]$ lsof -i -P | grep 3000
|
23
16
|
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
24
17
|
gunicorn 25058 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
25
18
|
gunicorn 25058 ec2-user 9u IPv4 240904 0t0 TCP localhost:3000->localhost:59276 (CLOSE_WAIT)
|
26
19
|
gunicorn 25146 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
27
20
|
gunicorn 25146 ec2-user 9u IPv4 240922 0t0 TCP localhost:3000->localhost:59280 (CLOSE_WAIT)
|
28
21
|
gunicorn 25147 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
29
|
-
[ec2-user@ip-
|
22
|
+
[ec2-user@ip-~~ etc]$ lsof -i -P | grep 3000
|
30
23
|
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
31
24
|
gunicorn 25193 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
32
25
|
gunicorn 25193 ec2-user 9u IPv4 241068 0t0 TCP localhost:3000->localhost:59292 (CLOSE_WAIT)
|
33
26
|
gunicorn 25194 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
34
27
|
gunicorn 25194 ec2-user 9u IPv4 241111 0t0 TCP localhost:3000->localhost:59298 (ESTABLISHED)
|
35
28
|
gunicorn 25196 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
36
|
-
[ec2-user@ip-〜〜 etc]$ lsof -i -P | grep 3000
|
37
|
-
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
38
|
-
gunicorn 25199 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
39
|
-
gunicorn 25199 ec2-user 9u IPv4 241243 0t0 TCP localhost:3000->localhost:59306 (CLOSE_WAIT)
|
40
|
-
gunicorn 25200 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
41
|
-
gunicorn 25200 ec2-user 9u IPv4 241260 0t0 TCP localhost:3000->localhost:59310 (CLOSE_WAIT)
|
42
|
-
gunicorn 25201 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
43
|
-
|
44
|
-
```
|
29
|
+
```
|
45
|
-
|
46
30
|
この時のステータスは以下のような状況でした。
|
47
31
|
```ここに言語を入力
|
48
|
-
[ec2-user@ip-
|
32
|
+
[ec2-user@ip-~~ etc]$ supervisorctl status
|
49
33
|
XXX RUNNING pid 24962, uptime 0:05:32
|
50
34
|
XXX_celery RUNNING pid 23091, uptime 1:09:55
|
51
35
|
```
|
52
|
-
|
53
|
-
以下はログファイルの出力結果です。
|
36
|
+
~~以下はログファイルの出力結果です。~~
|
54
|
-
|
55
|
-
```ここに言語を入力
|
56
|
-
__DEBUG MODE__
|
57
|
-
[2022-12-16 08:50:48 +0000] [25328] [INFO] Booting worker with pid: 25328
|
58
|
-
|
37
|
+
取得したログの時間帯に誤りがあったため削除しました。後述の追記に正しいものを記載しております。
|
59
|
-
[2022-12-16 08:51:13 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25325)
|
60
|
-
[2022-12-16 17:51:13 +0900] [25325] [INFO] Worker exiting (pid: 25325)
|
61
|
-
__DEBUG MODE__
|
62
|
-
[2022-12-16 08:51:14 +0000] [25331] [INFO] Booting worker with pid: 25331
|
63
|
-
|
38
|
+
なお、デーモン起動時まで遡ると以下のログも出力されておりました。
|
64
|
-
[2022-12-16 08:51:18 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25327)
|
65
|
-
[2022-12-16 17:51:18 +0900] [25327] [INFO] Worker exiting (pid: 25327)
|
66
|
-
__DEBUG MODE__
|
67
|
-
[2022-12-16 08:51:18 +0000] [25333] [INFO] Booting worker with pid: 25333
|
68
|
-
[2022-12-16 17:51:43 +0900] [25333] [DEBUG] GET /terms/
|
69
|
-
[2022-12-16 08:51:43 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25328)
|
70
|
-
[2022-12-16 17:51:43 +0900] [25328] [INFO] Worker exiting (pid: 25328)
|
71
|
-
__DEBUG MODE__
|
72
|
-
[2022-12-16 08:51:44 +0000] [25335] [INFO] Booting worker with pid: 25335
|
73
|
-
[2022-12-16 08:51:48 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25331)
|
74
|
-
[2022-12-16 17:51:48 +0900] [25331] [INFO] Worker exiting (pid: 25331)
|
75
|
-
```
|
39
|
+
```
|
76
|
-
|
77
|
-
遡ると以下のログも出力されておりました。
|
78
|
-
```
|
79
|
-
[2022-12-16 07:03:22 +0000] [22283] [INFO] Starting gunicorn 20.0.4
|
80
|
-
[2022-12-16 07:03:22 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
81
|
-
[2022-12-16 07:03:22 +0000] [22283] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
82
|
-
[2022-12-16 07:03:22 +0000] [22283] [ERROR] Retrying in 1 second.
|
83
|
-
[2022-12-16 07:03:23 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
84
|
-
[2022-12-16 07:03:23 +0000] [22283] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
85
|
-
[2022-12-16 07:03:23 +0000] [22283] [ERROR] Retrying in 1 second.
|
86
|
-
[2022-12-16 07:03:24 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
87
|
-
[2022-12-16 07:03:24 +0000] [22283] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
88
|
-
[2022-12-16 07:03:24 +0000] [22283] [ERROR] Retrying in 1 second.
|
89
|
-
[2022-12-16 07:03:25 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
90
|
-
[2022-12-16 07:03:25 +0000] [22283] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
91
|
-
[2022-12-16 07:03:25 +0000] [22283] [ERROR] Retrying in 1 second.
|
92
|
-
[2022-12-16 07:03:26 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
93
|
-
[2022-12-16 07:03:26 +0000] [22283] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
94
|
-
[2022-12-16 07:03:26 +0000] [22283] [ERROR] Retrying in 1 second.
|
95
|
-
[2022-12-16 07:03:27 +0000] [22283] [ERROR] Can't connect to ('0.0.0.0', 3000)
|
96
40
|
[2022-12-16 07:03:29 +0000] [22286] [DEBUG] Current configuration:
|
97
41
|
config: None
|
98
42
|
bind: ['0.0.0.0:3000']
|
@@ -151,19 +95,7 @@
|
|
151
95
|
pythonpath: None
|
152
96
|
paste: None
|
153
97
|
on_starting: <function OnStarting.on_starting at 0x7fc1885bc040>
|
154
|
-
on_reload: <function OnReload.on_reload at 0x7fc1885bc160>
|
155
|
-
when_ready: <function WhenReady.when_ready at 0x7fc1885bc280>
|
156
|
-
|
98
|
+
~~文字数の関係で割愛~~
|
157
|
-
post_fork: <function Postfork.post_fork at 0x7fc1885bc4c0>
|
158
|
-
post_worker_init: <function PostWorkerInit.post_worker_init at 0x7fc1885bc5e0>
|
159
|
-
worker_int: <function WorkerInt.worker_int at 0x7fc1885bc700>
|
160
|
-
worker_abort: <function WorkerAbort.worker_abort at 0x7fc1885bc820>
|
161
|
-
pre_exec: <function PreExec.pre_exec at 0x7fc1885bc940>
|
162
|
-
pre_request: <function PreRequest.pre_request at 0x7fc1885bca60>
|
163
|
-
post_request: <function PostRequest.post_request at 0x7fc1885bcaf0>
|
164
|
-
child_exit: <function ChildExit.child_exit at 0x7fc1885bcc10>
|
165
|
-
worker_exit: <function WorkerExit.worker_exit at 0x7fc1885bcd30>
|
166
|
-
nworkers_changed: <function NumWorkersChanged.nworkers_changed at 0x7fc1885bce50>
|
167
99
|
on_exit: <function OnExit.on_exit at 0x7fc1885bcf70>
|
168
100
|
proxy_protocol: False
|
169
101
|
proxy_allow_ips: ['127.0.0.1']
|
@@ -181,11 +113,8 @@
|
|
181
113
|
[2022-12-16 07:03:29 +0000] [22286] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
182
114
|
[2022-12-16 07:03:29 +0000] [22286] [DEBUG] connection to ('0.0.0.0', 3000) failed: [Errno 98] Address already in use
|
183
115
|
[2022-12-16 07:03:29 +0000] [22286] [ERROR] Retrying in 1 second.
|
184
|
-
|
185
|
-
```
|
116
|
+
```
|
186
|
-
|
187
117
|
### 該当のソースコード
|
188
|
-
|
189
118
|
XXX.confファイルの内容です。
|
190
119
|
```ここに言語名を入力
|
191
120
|
[program:XXX]
|
@@ -199,16 +128,105 @@
|
|
199
128
|
stdout_logfile=/var/log/XXX/ XXX.log
|
200
129
|
priority=995
|
201
130
|
```
|
202
|
-
|
203
131
|
### 試したこと
|
204
|
-
|
205
132
|
ここに問題に対して試したことを記載してください。
|
206
133
|
- supervisorの再起動、再読み込み(supervisorctl restart all、supervisorctl reread)
|
207
134
|
- プロセスの強制終了(kill -9 [プロセスID])
|
208
|
-
|
135
|
+
### 追記
|
136
|
+
いただいた質問に対する追記となります。
|
137
|
+
- supervisor経由で起動するケース
|
138
|
+
ターミナル上の出力結果は上記の通りで、ブラウザからELBのDNSでアクセスすると、502 Bad Gatewayとなります。
|
139
|
+
- gunicornで直接起動するケース
|
140
|
+
今回のsupervisorの設定を触るまでは、下記のコマンドを実行するとELBのDNSでアクセスできていたのですが、只今実行するとタイムアウトエラー(ブラウザ上は504 Gateway Time-out)となりました。確認不足で申し訳ありません。
|
141
|
+
```ここに言語を入力
|
142
|
+
[ec2-user@ip-~~ src]$ gunicorn XXX.wsgi --log-level=debug --bind=0.0.0.0:3000
|
143
|
+
```
|
144
|
+
結果
|
145
|
+
```ここに言語を入力
|
146
|
+
[2022-12-19 01:14:26 +0000] [24300] [INFO] Starting gunicorn 20.0.4
|
147
|
+
[2022-12-19 01:14:26 +0000] [24300] [DEBUG] Arbiter booted
|
148
|
+
[2022-12-19 01:14:26 +0000] [24300] [INFO] Listening at: http://0.0.0.0:3000 (24300)
|
149
|
+
[2022-12-19 01:14:26 +0000] [24300] [INFO] Using worker: sync
|
150
|
+
[2022-12-19 01:14:26 +0000] [24343] [INFO] Booting worker with pid: 24343
|
151
|
+
[2022-12-19 01:14:26 +0000] [24300] [DEBUG] 1 workers
|
152
|
+
__DEBUG MODE__
|
153
|
+
[2022-12-19 10:14:45 +0900] [24343] [DEBUG] GET /terms/
|
154
|
+
[2022-12-19 01:15:16 +0000] [24300] [CRITICAL] WORKER TIMEOUT (pid:24343)
|
155
|
+
[2022-12-19 10:15:16 +0900] [24343] [INFO] Worker exiting (pid: 24343)
|
156
|
+
[2022-12-19 01:15:16 +0000] [24344] [INFO] Booting worker with pid: 24344
|
157
|
+
```
|
158
|
+
- Listen Portの状況
|
159
|
+
supervisor起動前
|
160
|
+
```ここに言語を入力
|
161
|
+
[ec2-user@ip-~~ src]$ supervisorctl status
|
162
|
+
XXX STOPPED Dec 19 01:08 AM
|
163
|
+
XXX_celery STOPPED Dec 19 01:08 AM
|
164
|
+
[ec2-user@ip-~~ src]$ lsof -i -P | grep 3000
|
165
|
+
```
|
166
|
+
supervisor起動後
|
167
|
+
(lsof -i -P | grep 3000の実行は約1分間隔。)
|
168
|
+
```ここに言語を入力
|
169
|
+
[ec2-user@ip-~~ src]$ supervisorctl start all
|
170
|
+
XXX: started
|
171
|
+
XXX_celery: started
|
172
|
+
[ec2-user@ip-~~ src]$ supervisorctl status
|
173
|
+
XXX RUNNING pid 24573, uptime 0:00:06
|
174
|
+
XXX_celery RUNNING pid 24574, uptime 0:00:06
|
175
|
+
[ec2-user@ip-~~ src]$ lsof -i -P | grep 3000
|
176
|
+
gunicorn 24573 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
177
|
+
gunicorn 24577 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
178
|
+
gunicorn 24578 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
179
|
+
gunicorn 24579 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
180
|
+
gunicorn 24579 ec2-user 9u IPv4 667418 0t0 TCP localhost:3000->localhost:41650 (ESTABLISHED)
|
181
|
+
[ec2-user@ip-~~ src]$ lsof -i -P | grep 3000
|
182
|
+
gunicorn 24573 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
183
|
+
gunicorn 24577 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
184
|
+
gunicorn 24577 ec2-user 9u IPv4 667588 0t0 TCP localhost:3000->localhost:41658 (CLOSE_WAIT)
|
185
|
+
gunicorn 24625 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
186
|
+
gunicorn 24625 ec2-user 9u IPv4 667627 0t0 TCP localhost:3000->localhost:41662 (ESTABLISHED)
|
187
|
+
gunicorn 24627 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
188
|
+
[ec2-user@ip-~~ src]$ lsof -i -P | grep 3000
|
189
|
+
gunicorn 24573 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
190
|
+
gunicorn 24627 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
191
|
+
gunicorn 24627 ec2-user 9u IPv4 667855 0t0 TCP localhost:3000->localhost:41666 (CLOSE_WAIT)
|
192
|
+
gunicorn 24641 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
193
|
+
gunicorn 24641 ec2-user 9u IPv4 667872 0t0 TCP localhost:3000->localhost:41670 (CLOSE_WAIT)
|
194
|
+
gunicorn 24642 ec2-user 5u IPv4 667345 0t0 TCP *:3000 (LISTEN)
|
195
|
+
```
|
196
|
+
デーモン起動時からのログ
|
197
|
+
ブラウザ経由でのアクセスを行ったタイミングのログですが、下記のようなタイムアウト以外のログは出力がなく明確に対応づけて記載することができず申し訳ありません。
|
198
|
+
```ここに言語を入力
|
199
|
+
__DEBUG MODE__
|
200
|
+
[2022-12-19 01:39:10 +0000] [24573] [INFO] Starting gunicorn 20.0.4
|
201
|
+
[2022-12-19 01:39:10 +0000] [24573] [DEBUG] Arbiter booted
|
202
|
+
[2022-12-19 01:39:10 +0000] [24573] [INFO] Listening at: http://0.0.0.0:3000 (24573)
|
203
|
+
[2022-12-19 01:39:10 +0000] [24573] [INFO] Using worker: sync
|
204
|
+
[2022-12-19 01:39:10 +0000] [24577] [INFO] Booting worker with pid: 24577
|
205
|
+
[2022-12-19 01:39:10 +0000] [24578] [INFO] Booting worker with pid: 24578
|
206
|
+
[2022-12-19 01:39:10 +0000] [24579] [INFO] Booting worker with pid: 24579
|
207
|
+
[2022-12-19 01:39:10 +0000] [24573] [DEBUG] 3 workers
|
208
|
+
[2022-12-19 10:39:16 +0900] [24579] [DEBUG] GET /terms/
|
209
|
+
[2022-12-19 10:39:20 +0900] [24578] [DEBUG] GET /terms/
|
210
|
+
[2022-12-19 10:39:46 +0900] [24577] [DEBUG] GET /terms/
|
211
|
+
[2022-12-19 01:39:46 +0000] [24573] [CRITICAL] WORKER TIMEOUT (pid:24579)
|
212
|
+
[2022-12-19 10:39:46 +0900] [24579] [INFO] Worker exiting (pid: 24579)
|
213
|
+
__DEBUG MODE__
|
214
|
+
[2022-12-19 01:39:47 +0000] [24625] [INFO] Booting worker with pid: 24625
|
215
|
+
[2022-12-19 10:39:50 +0900] [24625] [DEBUG] GET /terms/
|
216
|
+
[2022-12-19 01:39:51 +0000] [24573] [CRITICAL] WORKER TIMEOUT (pid:24578)
|
217
|
+
[2022-12-19 10:39:51 +0900] [24578] [INFO] Worker exiting (pid: 24578)
|
218
|
+
__DEBUG MODE__
|
219
|
+
[2022-12-19 01:39:51 +0000] [24627] [INFO] Booting worker with pid: 24627
|
220
|
+
[2022-12-19 10:40:16 +0900] [24627] [DEBUG] GET /terms/
|
221
|
+
[2022-12-19 01:40:17 +0000] [24573] [CRITICAL] WORKER TIMEOUT (pid:24577)
|
222
|
+
[2022-12-19 10:40:17 +0900] [24577] [INFO] Worker exiting (pid: 24577)
|
223
|
+
__DEBUG MODE__
|
224
|
+
[2022-12-19 01:40:18 +0000] [24641] [INFO] Booting worker with pid: 24641
|
225
|
+
[2022-12-19 10:40:20 +0900] [24641] [DEBUG] GET /terms/
|
226
|
+
[2022-12-19 01:40:21 +0000] [24573] [CRITICAL] WORKER TIMEOUT (pid:24625)
|
227
|
+
[2022-12-19 10:40:21 +0900] [24625] [INFO] Worker exiting (pid: 24625)
|
228
|
+
```
|
209
229
|
### 補足情報(FW/ツールのバージョンなど)
|
210
|
-
|
211
|
-
他に必要な情報があれば追加でアップロード
|
230
|
+
他に必要な情報があれば追加でアップロードいたします。
|
212
231
|
知識不足のため誤認などありましたらご指摘ください。
|
213
232
|
何卒お力添えいただけますと幸いです。よろしくお願いいたします。
|
214
|
-
|
2
ログの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -51,6 +51,30 @@
|
|
51
51
|
```
|
52
52
|
|
53
53
|
以下はログファイルの出力結果です。
|
54
|
+
|
55
|
+
```ここに言語を入力
|
56
|
+
__DEBUG MODE__
|
57
|
+
[2022-12-16 08:50:48 +0000] [25328] [INFO] Booting worker with pid: 25328
|
58
|
+
[2022-12-16 17:51:13 +0900] [25328] [DEBUG] GET /terms/
|
59
|
+
[2022-12-16 08:51:13 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25325)
|
60
|
+
[2022-12-16 17:51:13 +0900] [25325] [INFO] Worker exiting (pid: 25325)
|
61
|
+
__DEBUG MODE__
|
62
|
+
[2022-12-16 08:51:14 +0000] [25331] [INFO] Booting worker with pid: 25331
|
63
|
+
[2022-12-16 17:51:18 +0900] [25331] [DEBUG] GET /terms/
|
64
|
+
[2022-12-16 08:51:18 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25327)
|
65
|
+
[2022-12-16 17:51:18 +0900] [25327] [INFO] Worker exiting (pid: 25327)
|
66
|
+
__DEBUG MODE__
|
67
|
+
[2022-12-16 08:51:18 +0000] [25333] [INFO] Booting worker with pid: 25333
|
68
|
+
[2022-12-16 17:51:43 +0900] [25333] [DEBUG] GET /terms/
|
69
|
+
[2022-12-16 08:51:43 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25328)
|
70
|
+
[2022-12-16 17:51:43 +0900] [25328] [INFO] Worker exiting (pid: 25328)
|
71
|
+
__DEBUG MODE__
|
72
|
+
[2022-12-16 08:51:44 +0000] [25335] [INFO] Booting worker with pid: 25335
|
73
|
+
[2022-12-16 08:51:48 +0000] [24962] [CRITICAL] WORKER TIMEOUT (pid:25331)
|
74
|
+
[2022-12-16 17:51:48 +0900] [25331] [INFO] Worker exiting (pid: 25331)
|
75
|
+
```
|
76
|
+
|
77
|
+
遡ると以下のログも出力されておりました。
|
54
78
|
```
|
55
79
|
[2022-12-16 07:03:22 +0000] [22283] [INFO] Starting gunicorn 20.0.4
|
56
80
|
[2022-12-16 07:03:22 +0000] [22283] [ERROR] Connection in use: ('0.0.0.0', 3000)
|
1
記載誤りがあったため修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,7 +3,8 @@
|
|
3
3
|
|
4
4
|
EC2(Linux)にNginx + Gunicorn + SupervisorでDjangoアプリケーションをデプロイしました。
|
5
5
|
supervisorでデーモン化ができているか確認したところ、
|
6
|
-
gunicornのプロセスが、S
|
6
|
+
gunicornのプロセスが、CLOSE_WAITとESTABLISHEDを繰り返していることが分かりました。
|
7
|
+
CLOSEした場合、新たにプロセスが作成されるのは正しい挙動と思うのですが、CLOSEされている原因が不明な状況です。
|
7
8
|
(以下、固有のサービス名をXXXと置き換えています。)
|
8
9
|
|
9
10
|
### 実現したいこと
|
@@ -15,34 +16,38 @@
|
|
15
16
|
|
16
17
|
### 発生している問題・エラーメッセージ
|
17
18
|
|
18
|
-
|
19
|
+
gunicornで指定しているポート(3000)を確認した結果、
|
20
|
+
次々に新たなプロセスIDが作成されていました。(この間特に操作等はなし。)
|
19
21
|
```ここに言語を入力
|
20
|
-
[ec2-user@ip-〜〜
|
22
|
+
[ec2-user@ip-〜〜 etc]$ lsof -i -P | grep 3000
|
21
|
-
|
23
|
+
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
22
|
-
|
24
|
+
gunicorn 25058 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
25
|
+
gunicorn 25058 ec2-user 9u IPv4 240904 0t0 TCP localhost:3000->localhost:59276 (CLOSE_WAIT)
|
26
|
+
gunicorn 25146 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
27
|
+
gunicorn 25146 ec2-user 9u IPv4 240922 0t0 TCP localhost:3000->localhost:59280 (CLOSE_WAIT)
|
28
|
+
gunicorn 25147 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
23
|
-
[ec2-user@ip-〜〜
|
29
|
+
[ec2-user@ip-〜〜 etc]$ lsof -i -P | grep 3000
|
24
|
-
XXX STARTING
|
25
|
-
|
30
|
+
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
31
|
+
gunicorn 25193 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
32
|
+
gunicorn 25193 ec2-user 9u IPv4 241068 0t0 TCP localhost:3000->localhost:59292 (CLOSE_WAIT)
|
33
|
+
gunicorn 25194 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
34
|
+
gunicorn 25194 ec2-user 9u IPv4 241111 0t0 TCP localhost:3000->localhost:59298 (ESTABLISHED)
|
35
|
+
gunicorn 25196 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
26
|
-
[ec2-user@ip-〜〜
|
36
|
+
[ec2-user@ip-〜〜 etc]$ lsof -i -P | grep 3000
|
27
|
-
|
37
|
+
gunicorn 24962 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
28
|
-
|
38
|
+
gunicorn 25199 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
29
|
-
|
39
|
+
gunicorn 25199 ec2-user 9u IPv4 241243 0t0 TCP localhost:3000->localhost:59306 (CLOSE_WAIT)
|
30
|
-
|
40
|
+
gunicorn 25200 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
41
|
+
gunicorn 25200 ec2-user 9u IPv4 241260 0t0 TCP localhost:3000->localhost:59310 (CLOSE_WAIT)
|
31
|
-
|
42
|
+
gunicorn 25201 ec2-user 5u IPv4 239863 0t0 TCP *:3000 (LISTEN)
|
32
|
-
|
43
|
+
|
33
|
-
XXX STARTING
|
34
|
-
XXX_celery RUNNING pid 23091, uptime 0:06:57
|
35
44
|
```
|
36
|
-
これはsupervisorctl restart allをした直後ですが、
|
37
|
-
同時に再起動したサービスは連続稼働していることが分かります。
|
38
45
|
|
39
|
-
この時
|
46
|
+
この時のステータスは以下のような状況でした。
|
40
47
|
```ここに言語を入力
|
41
|
-
[ec2-user@ip-〜〜
|
48
|
+
[ec2-user@ip-〜〜 etc]$ supervisorctl status
|
42
|
-
|
49
|
+
XXX RUNNING pid 24962, uptime 0:05:32
|
43
|
-
gunicorn 21214 ec2-user 9u IPv4 212783 0t0 TCP localhost:3000->localhost:57966 (CLOSE_WAIT)
|
44
|
-
|
50
|
+
XXX_celery RUNNING pid 23091, uptime 1:09:55
|
45
|
-
gunicorn 21216 ec2-user 9u IPv4 212801 0t0 TCP localhost:3000->localhost:57970 (CLOSE_WAIT)
|
46
51
|
```
|
47
52
|
|
48
53
|
以下はログファイルの出力結果です。
|