我在Elastic Beanstalk上有一个Django应用。它可以在99%的时间内正常工作,但是有时在向views.py
中的某个功能提交请求后,该应用程序超时,处于脱机状态3-5分钟,然后像没有任何反应一样弹出在线。日志中唯一的迹象是
Script timed out before returning headers: wsgi.py
Script timed out before returning headers: wsgi.py
Script timed out before returning headers: wsgi.py
然后恢复正常。在此期间,我还没有看到过大量/异常的内存或CPU使用情况。我见过这种情况的时间是
我不知道如何调试它。
django.config
container_commands:
01_migrate:
command: "python manage.py migrate --noinput"
02_collectstatic:
command: "python manage.py collectstatic --noinput"
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: analyzer/wsgi.py
aws:elasticbeanstalk:container:python:staticfiles:
/static/: static/
files:
"/etc/httpd/conf.d/ssl_rewrite.conf":
mode: "000644"
owner: root
group: root
content: |
RewriteEngine On
<If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</If>
我已启用默认的NumProcesses=1
和NumThreads=15
。我发现另一个SO post在谈论此错误,他们的建议是同时添加WSGIApplicationGroup %{GLOBAL}
和增加进程数。
在尝试建议的修复程序之前,我正在尝试确定核心问题。是什么原因导致这种情况发生?流量增加/内存泄漏/数据库连接是否终止了该应用程序?有没有办法监视这样的事情?
如果答案是跟随其他SO帖子,那么为什么?