文件上传和结果汇集杀死ASP.NET Web应用程序 [英] File upload and result pooling kills ASP.NET web app

查看:127
本文介绍了文件上传和结果汇集杀死ASP.NET Web应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们已经创建了 ASP.NET MVC应用程序其中接受文件上传(高达80MB),并具有结果通过汇集AsincController 实施。托管在Windows 2008 R2 IIS7.5 .NET 4服务器2芯2.6GHZ,2GB内存,HDD快

We have created ASP.NET MVC app which accept file upload(up to 80mb) and has result pooling implemented by AsincController. Hosted on Windows 2008 R2 IIS7.5 .NET 4. Server 2 Cores 2.6GHZ, 2GB Ram, fast HDD.

该网站拥有众多用户和性能监视器显示 ASP.NET请求/秒〜15 请求当前〜270

The web site has many users and Performance Monitor show ASP.NET Requests/Sec ~15 and Request Current ~270

几分钟后开始ASP.NET 排队的请求 ASP.NET请求队列计数器开始成长,成为应用极为缓慢。我差不多一个月狩猎问题,试图扼要code,没有性能问题,也没有内存泄漏。增加 maxWorkerThreads 400 maxIoThreads 400 。设置 maxConcurrentRequestsPerCPU 5000 MaxConcurrentThreadsPerCPU 0 但要么没有帮助。

After several minutes ASP.NET starts queuing request and ASP.NET Request Queued counter starts growing and application become extremely slow. I am hunting the problem almost a month, tried to profile code, no performance issues and no memory leaks. Increased maxWorkerThreads to 400 and maxIoThreads to 400. Set maxConcurrentRequestsPerCPU to 5000 and MaxConcurrentThreadsPerCPU to 0 but that either didn't helps.

一件事,这似乎有助于越来越多的应用程序池的最大工作进程,以两个或三个过程,使应用程序池Web园。请求之后电流跳到〜350,并没有要求排队。但是Web园介绍几款,我们就不会在这里提到的新问题。

One thing which seems helps is increasing app pool Maximum Worker Processes to two or three processes and making app pool web garden. After that Request Current jumps to ~350 and no request queuing. But web garden introduce several new issues which we will not mention here.

请张贴任何建议,我们如何能够提高应用程序的性能,而不使我们的应用程序运行在IIS的web游泳池花园?

Please post any suggestions how we could increase application performance without making our app run in IIS pool web garden?

推荐答案

我会对你说要仔细检查需要较长时间进行工作的网页,或下载或上传文件的网页,和关闭会话此页面。如果做不到这一点,那么你可能需要编写处理会话一个完全自定义的方式。

I will say to you to double check the pages that take long time to proceed a work, or the pages that download or upload files, and disable the session on this pages. If this is not possible, then you may need to write a totally custom way to handle the session.

为什么,因为会话是锁定的一切,直到页面完全恢复。

Why, because session is locks everything until the page fully return.

您可以阅读相对于会议和这一问题:结果
<一href=\"http://stackoverflow.com/questions/9694117/call-aspx-page-to-return-an-image-randomly-slow\">call aspx页面返回的图像随机慢结果
<一href=\"http://stackoverflow.com/questions/12284530/asp-net-server-does-not-process-pages-asynchronously/12285168#12285168\">ASP.NET服务器不处理页面异步结果
试图使Web方式的异步结果
<一href=\"http://stackoverflow.com/questions/9426673/web-app-blocked-while-processing-another-web-app-on-sharing-same-session\">Web应用程序被阻止在处理上共享同一个会话结果另一个Web应用程序
<一href=\"http://stackoverflow.com/questions/9056240/what-perfmon-counters-are-useful-for-identifying-asp-net-bottlenecks/9056650#9056650\">What性能计数器对于识别ASP.NET瓶颈有用吗?结果
更换ASP.Net的会议完全

You can read relative to session and to this issue:
call aspx page to return an image randomly slow
ASP.NET Server does not process pages asynchronously
Trying to make Web Method Asynchronous
Web app blocked while processing another web app on sharing same session  
What perfmon counters are useful for identifying ASP.NET bottlenecks?  
Replacing ASP.Net's session entirely  

这篇关于文件上传和结果汇集杀死ASP.NET Web应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆