asp.net 性能调较

由于asp.net 处理进程在machine.config配置文件中的配置为<processModel autoConfig="true" />,这意味着你的asp.net 应用程序使用的性能参数依赖于machine.config的配置。 下面几个参数是自动配置的:

  1. maxWorkerThreads 和 maxIoThreads
  2. minFreeThreads 和 minLocalRequestFreeThreads
  3. minWorkerThreads
  4. maxconnection
  5. executionTimeout

这几个参数会和你的应用程序发生这样的症状相关“争用、 性能下降和死锁进行 Web 服务请求从 ASP.NET 应用程序时”:

进行从 ASP.NET 应用程序, 调用 XMLWeb 服务时可能会遇到争用、 性能下降和死锁。 客户可能报告请求停止响应 (或 " 挂起 ") 或需要很长时间来执行。 如果怀疑死, 可能回收辅助进程。 应用程序事件日志中可能会收到以下消息。 • 如果您使用 MicrosoftInternet 信息服务 (IIS) 5.0, 会应用程序事件日志中您收到以下消息:

   Event Type:     Error
    Event Source:   ASP.NET 1.0.3705.0
    Event Category: None
    Event ID:       1003
    Date:           5/4/2003
    Time:           6:18:23 PM
    User:           N/A
    Computer:       <ComputerName>
    Description:
       aspnet_wp.exe  (PID: <xxx>) was recycled because it was suspected to be in a deadlocked state.
       It did not send any responses for pending requests in the last 180 seconds.

• 如果您使用 IIS 6.0, 会应用程序事件日志中您收到以下消息:

   Event Type:     Warning
    Event Source:   W3SVC-WP
    Event Category: None
    Event ID:       2262
    Date:           5/4/2003
    Time:           1:02:33 PM
    User:           N/A
    Computer:       <ComputerName>
    Description:
       ISAPI 'C:\Windows\Microsoft.net\Framework\v.1.1.4322\aspnet_isapi.dll' reported itself as
       unhealthy for the following reason: 'Deadlock detected'.

• 如果您使用 IIS 6.0, 会系统事件日志中您收到以下消息:

   Event Type:     Warning
    Event Source:   W3SVC
    Event Category: None
    Event ID:       1013
    Date:           5/4/2003
    Time:           1:03:47 PM
    User:           N/A
    Computer:       <ComputerName>
    Description:
       A process serving application pool 'DefaultAppPool' exceeded time limits during shut down.
       The process id was '<xxxx>'.

可能会进行对 HttpWebRequest.GetResponse 方法调用时还收到以下异常错误信息: ôSystem.InvalidOperationException 有是没有足够的空闲线程 ThreadPool 对象以完成 operation.ö 中: 还可能在浏览器收到以下异常错误信息: 请求定时 out.ö ôHttpException (0 x 80004005): 注意 本文还适用于应用程序直接使 HttpWebRequest 请求。

原因

因为 ASP.NET 的辅助线程和完成端口线程, 调用可用于执行请求数限制可能发生此问题。 对 Web 服务调用通常, 使用一个辅助线程来执行代码发送请求和一个完成端口线程以从 Web 服务接收回调。 但是, 如果请求重定向或需要验证, 调用可能使用多达两辅助和两完成端口线程。 同时发生多个 Web 服务调用时, 因此您可消耗托管 ThreadPool。 例如, 假设 ThreadPool 仅限于 maxworkerthreads, 10, 并且当前执行所有 10 工作线程正在等待回调来执行代码。 由于工作项排队以 ThreadPool 阻塞线程可用之前可从不执行回调。 其他潜在源争夺是 maxconnection 参数, System.Net 命名空间用于限制的连接数。 此限制通常, 按预期工作。 但是, 如果许多应用程序尝试使许多请求到单个 IP 地址同时, 线程可能需要等待一个可用连接。 解决方案 Machine.config 文件以最适合您情况中要解决这些问题, 可调整以下参数: • maxWorkerThreads • minWorkerThreads • maxIoThreads • minFreeThreads • minLocalRequestFreeThreads • maxconnection • executionTimeout 要成功解决这些问题, 请按照下列步骤操作: • 限制同时到大约 12 每 CPU 执行, ASP.NET 请求的数量。  • 允许 Web 服务回调用于 ThreadPool 中自由线程。  • 选择一个适当值对于 maxconnections 参数。 根据您选择的 IP 地址和 AppDomains 使用数。  注意 : 建议来限制每 CPU 12 ASP.NET 请求的数量是有点任意。 但是, 此限制已证明能够适合大多数应用程序。 具体参见:http://support.microsoft.com/Default.aspx?id=821268

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏smy

git将代码提交到远程分支(非主分支)

一个仓库可以包含多个分支,有一个默认的主分支:master 若想提交代码至远程仓库的某个分支(非主分支) 先查看下本地分支以及远程分支:git branch -...

3245
来自专栏Java进阶架构师

一篇文章带你详解 HTTP 协议(下)

我们可以自行改变 RFC2616 中定义的状态码或者服务器端自行创建状态码,只要遵守状态码的类别定义就可以了。

1072
来自专栏静晴轩

生成lua的静态库.动态库.lua.exe和luac.exe

前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 “lua: attempt to ...

94111
来自专栏木制robot技术杂谈

Scrapy爬虫框架教程(三)-- 调试(Debugging)Spiders

前言 春节放假在老家没有网,所以最近没有更新。这周加班闲暇抽空赶紧来更新一篇。我们在写爬虫的时候经常需要修改xapth规则来获取所需的数据,而Scrapy的爬虫...

42815
来自专栏乐沙弥的世界

Virtual Box下安装Oracle Linux 6.3

      Oracle Linux 6.3已经发布快2年了,其功能有很大的提升,增强了KVM,文件卷的在线resizing,LVM支持 raid4, 5, 6...

692
来自专栏北京马哥教育

【Python】windows下Eclipse中安装集成webpy框架

这篇文章主要讲述的是在Windows下,在eclipse中如何通过使用webpy框架进行python的web开发。很多文章都是在自己一次次的碰壁中又决定自己写一...

1773
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

29511
来自专栏Python

python中添加环境变量

import sys sys.path 系统环境是一个list,可以将自己需要的库添加进入,例如mysql库,hive库等等。有三种方式添加,均验证通过: 1 ...

4529
来自专栏我有一个梦想

Python 项目实践三(Web应用程序)第五篇

 接着上节继续学习,在这一节,我们将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的...

2238
来自专栏Golang语言社区

HTTP协议漫谈

简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将H...

3796

扫码关注云+社区

领取腾讯云代金券