Django Gunicorn nginx表现非常糟糕.甚至无法获得8 qps

前端之家收集整理的这篇文章主要介绍了Django Gunicorn nginx表现非常糟糕.甚至无法获得8 qps前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用Nginx gunicorn来为django应用程序提供服务并将其部署在EC2(m1.small实例)上.

我有这个观点:

def hi(request):
    return HttpResponse('hi',content_type='text/plain')

映射到url / hi /.所以它基本上只是在[myurl] / hi返回hi.

现在,当我从loader.io加载测试这个域([myurl] / hi)时,这甚至没有通过250个客户端超过30秒的测试. (每秒约8个请求)

This is(部分)我的Nginx access.log文件.它基本上只是在几百秒后给出了499秒. (loader.io中的超时设置为10秒)

我必须做一些严重的错误.我怎么知道的?

我使用yet-another-django-profiler对其进行了分析,以下是输出

我也在Elastic Beanstalk(它使用Apache服务器)上部署了这个django应用程序(m3.large实例),我也得到了糟糕的性能.
我现在的中间件是:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',# 'django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware',# 'silk.middleware.SilkyMiddleware',# 'yet_another_django_profiler.middleware.ProfilerMiddleware',# 'debug_toolbar.middleware.DebugToolbarMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware',# 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',# 'django.contrib.messages.middleware.MessageMiddleware',# 'django.middleware.clickjacking.XFrameOptionsMiddleware',# 'django.middleware.security.SecurityMiddleware',)

之前没有一个被评论过.当我评论出这9行时,我获得了性能提升.现在我可以从这个应用程序中获得60 qps.但我认为我在做更多的错误,并且可以进一步扩展.

最佳答案
这只是在黑暗中刺伤而没有更多的东西继续下去,而且我没有声誉来评论你原来的问题:我注意到你的gunicorn启动脚本有

--log-level=debug

如果你有调试级别的日志记录(在gunicorn中,特别是在Django项目中),它将解释为什么通过注释中间件来提高性能以及为什么你会不断地从不同的部署架构中降低性能.

调试级别日志记录输出大量信息.

猜你在找的Nginx相关文章