GUnicorn和Django可使用有限的资源处理500个并发请求

时间:2018-09-09 08:18:57

标签: django nginx concurrency gunicorn

我的任务是创建Django-Gunicorn演示应用程序。在此任务中,我需要能够在1秒内处理500个并发登录请求。

我必须将应用程序部署在具有2GB RAM和2个核心CPU的VM中(使用Vagrant和VirtualBox,Ubuntu 16.04)。我已经尝试了以下部署方法。

0

使用主机上的JMeter测试,测试通常需要7到10秒左右的时间。即使登录端点仅返回空响应而没有任何数据库访问,时间量也几乎相同。你能告诉我这是怎么了吗?

我在gunicorn --workers 5 --bind "0.0.0.0:8000" --worker-class "gevent" --keep-alive 5 project.wsgi使用默认设置。

/etc/nginx/nginx.conf

这是我放置在“ sites-available”文件夹中的反向代理设置。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

谢谢

0 个答案:

没有答案