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项目中),它将解释为什么通过注释中间件来提高性能以及为什么你会不断地从不同的部署架构中降低性能.

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

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...