C# Nginx/FastCGI单声道性能问题

C# Nginx/FastCGI单声道性能问题,c#,nginx,mono,fastcgi,C#,Nginx,Mono,Fastcgi,有没有人有办法提高运行Web API C#代码的Nginx/FastCGI的性能 我的示例非常简单,但对于50个并发用户,它失败了。 服务器只是无法处理任何请求 在配置中,我考虑将nginx设置为处理多达500个并发请求,其中fastcgi将以最多10000个连接和请求启动,因此nginx将充当过滤器,为fastcgi提供onhold请求,以便有足够的时间处理当前请求 nginx.conf: worker_processes 1; events{ worker_connections 5

有没有人有办法提高运行Web API C#代码的Nginx/FastCGI的性能

我的示例非常简单,但对于50个并发用户,它失败了。 服务器只是无法处理任何请求

在配置中,我考虑将nginx设置为处理多达500个并发请求,其中fastcgi将以最多10000个连接和请求启动,因此nginx将充当过滤器,为fastcgi提供onhold请求,以便有足够的时间处理当前请求

nginx.conf:

worker_processes 1;
events{
    worker_connections 500;
}
站点\u可用/默认值

server {
 listen   80;
 server_name    192.168.163.138;
 access_log     /var/log/nginx/domain1.xyz.access.log;
 location ~ / {
        root    /var/www/www.domain1.xyz/;
        index index.html index.htm default.aspx Default.aspx;
        fastcgi_index default.aspx;
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/fastcgi_params;
 }
}
用于启动fastcgi的命令:

sudo fastcgi-mono-server4/applications=192.168.163.138:/:/var/www/www.domain1.xyz//socket=tcp:127.0.0.1:9000/verbose=True/showlog=True/loglevels=Debug/maxconns=10000/maxreqs=10000/multiplex=false

我用围城来衡量:

sudo围城-t1M-c50

这台机器是VM,具有1个内核/1Gb RAM Ubuntu服务器14.4

如果我给虚拟机更多的资源,它就会开始工作,但对我来说似乎不太好。服务器不应该只是挂起,但仍然会延迟响应。
有什么想法吗?有没有人能让它在没有类似问题的情况下运行…

多线程应用程序在单核机器上运行。你认为这是一个有效的测试设置吗?测试是有效的。我不期望在这方面有超高的性能,但它不应该停止响应。我可以给那里2个核心,但我不能期望它有一个用户每个核心。有效配置应该是什么?我猜它挂起是因为存在一些仅在高负载下可复制的竞争条件,这使得.NET管道抛出一些正在被吞没的异常,也许您可以使用
--trace
运行mono,并将所有异常重定向到日志文件,然后开始研究多线程应用程序在单核机器上运行的情况。你认为这是一个有效的测试设置吗?测试是有效的。我不期望在这方面有超高的性能,但它不应该停止响应。我可以给那里2个核心,但我不能期望它有一个用户每个核心。有效配置应该是什么?我猜它挂起是因为存在一些仅在高负载下可复制的竞争条件,这使得.NET管道抛出一些正在被吞没的异常,也许您可以使用
--trace
运行mono,并将所有异常重定向到日志文件,从那里开始调查