在生产中如何在Gunicorn上配置Django

在生产中如何在Gunicorn上配置Django,django,profiling,gunicorn,gevent,Django,Profiling,Gunicorn,Gevent,我有一个很难在测试环境中重现的内存泄漏。 因此,我想在有限的时间内分析我的生产服务器,以了解哪些对象占用最多内存。 由于greenlets的使用,对Gunicorn进行分析似乎不是那么容易 我在跑步: Python 2.7.3 Gunicorn 18.0 Django 1.6 这是我的Gunicorn配置: CONFIG = { 'environment': { 'DJANGO_SETTINGS_MODULE': 'myapp.settings', },

我有一个很难在测试环境中重现的内存泄漏。 因此,我想在有限的时间内分析我的生产服务器,以了解哪些对象占用最多内存。 由于greenlets的使用,对Gunicorn进行分析似乎不是那么容易

我在跑步:

  • Python 2.7.3
  • Gunicorn 18.0
  • Django 1.6
这是我的Gunicorn配置:

CONFIG = {
    'environment': {
        'DJANGO_SETTINGS_MODULE': 'myapp.settings',
    },
    'user': 'myapp',
    'group': 'myapp',
    'args': (
        '--bind=127.0.0.1:8088',
        '--workers=8',
        '--worker-class=socketio.sgunicorn.GeventSocketIOWorker',
        '--timeout=300',
        '--error-logfile=/var/log/gunicorn/myapp-error.log',
        '--max-requests=100',
        '--log-level=debug',
        'myapp.wsgi:application',
    ),
}

使用Gunicorn运行Django时,执行内存分析的最佳方法是什么?

我使用New Relic服务:

他们有免费计划,24小时数据保留

非常容易设置:


您可以尝试编写自己的自定义分析中间件。看看这个:。尽管如此,作者还是建议自己不要在制作中使用该脚本。这是一份回购协议,声称做了一些你想做的事情: