如何使用Nginx+;uWSGI

如何使用Nginx+;uWSGI,nginx,amazon-ec2,uwsgi,Nginx,Amazon Ec2,Uwsgi,我已经使用了nginx内置功能clientbodyinfinely上传我的文件。为了了解它的性能。我使用ApacheAb来测试它 当我将并发级别设置为100时 ab -n 10000 -c 100 -p xxxx.rar -T application/x-www-form-urlencoded http://?????? 结果是 Requests per second: 1477.95 [#/sec] (mean) 当并发级别设置为120时,我得到了502个错误 connect() t

我已经使用了nginx内置功能clientbodyinfinely上传我的文件。为了了解它的性能。我使用ApacheAb来测试它

当我将并发级别设置为100时

ab -n 10000 -c 100 -p xxxx.rar -T application/x-www-form-urlencoded http://??????
结果是

Requests per second:    1477.95 [#/sec] (mean)
并发级别设置为120时,我得到了502个错误

connect() to unix:/???/uwsgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream
nginx配置如下所示[请访问以了解更多详细信息]

location /upload {
        auth_request               /upload/authenticate;

        client_body_temp_path      /tmp/;
        client_body_in_file_only   on;
        client_body_buffer_size    16M;
        client_max_body_size       80M;

        uwsgi_pass_request_headers on;

        uwsgi_param                X-FILE $request_body_file;
        uwsgi_pass_request_body    off;
        uwsgi_pass                 unix://tmp/uwsgi.sock;
        include  uwsgi_params;
}

location = /upload/authenticate {
        uwsgi_pass              unix://tmp/uwsgi.sock;
        uwsgi_pass_request_body off;
        uwsgi_param             CONTENT-LENGTH "";
        uwsgi_param             X-Original-URI $request_uri;
        include  uwsgi_params;
}
我采取的解决方法是提供更多的后端服务器和上游指令。现在502消失了。然而,无论我添加了多少uWSGi实例,TPS仍然少于1600[实际上,我最多使用8个实例,每个实例有2个进程]

在加载测试期间,我还查看了cpu、内存使用情况[top、free、vmstat]。它们不太高

为什么即使我使用了更多的uWSGI实例,性能也没有提高??我怎么知道在哪里进行优化


使用的机器是AWS EC2,带有2个CPU(2.5GHz)、4G内存。用于上传的文件大小为30K。

如果有8个实例,每个实例有2个进程,这是什么意思?从您的配置来看,您似乎正在使用单个unix套接字。也许你指的是一个实例,每个实例有8个进程和2个线程?顺便说一句,对于一个EC2实例来说,它们看起来很不错,你必须考虑到游戏中有几十个玩家(包括ab不是这种测试的最佳工具)@roberto,上面的配置是初始版本。后来,我使用了8个uWSGI实例,每个启动2个进程。最新版本正在使用
上游内部_unix{serverunix://uwsgi1.sock;服务器unix://uwsgi2.sock;服务器unix://uwsgi2.sock;服务器unix://uwsgi3.sock…}
并且uwsgi_pass的值更改为internal_unix。@罗伯托:另一件事是,你说过ab在这里不是一个好工具。那么,什么是更好的工具?你能和我分享吗?谢谢httperf通常是一个很好的工具