当前位置:  编程技术>.net/c#/asp.net

c#(asp.net)线程配置总结

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本文为大家介绍有关c#(asp.net)线程配置的相关知识,有需要的朋友可以参考下。 同一时刻只能发起的工作线程数量。 1、(maxWorkerThreads * CPU逻辑数量)-minFreeThreads 比如2个CPU默认配置maxWorkerThreads=100,minFreeThreads=176,则同时最...

本文为大家介绍有关c#(asp.net)线程配置的相关知识,有需要的朋友可以参考下。

同一时刻只能发起的工作线程数量。
1、(maxWorkerThreads * CPU逻辑数量)-minFreeThreads
比如2个CPU默认配置maxWorkerThreads=100,minFreeThreads=176,则同时最大只能有24个工作线程。(这里不管
 

代码示例:




 

这个配置的值,经过测试,不管此处maxconnection为多少,最终都是从上面的计算公式计算出来)

2、maxconnection,这个值是每秒可以支持的线程数。(但实际每秒可以并行运行的线程为(maxWorkerThreads * CPU逻辑数量)-minFreeThreads的结果),一般要求支持并发量,每个并发请求都很耗时的情况下,就需要设置该值为对应的并发量(有这么多线程来处理),但线程多了切换也很耗服务器资源,实际情况往往不一定请求都很耗时,所以根据实际情况调整。

3、maxWorkerThreads是最大工作线程,默认100我觉得再非高并发下还是可以

4、minWorkerThreads是最小工作线程,由于托管线程启动比较耗时,根据实验结果:40秒启动了18个线程,大概接近官方说的每秒接近2个。由于线程开销比较耗时,因此可以初始化到正常情况下的最低支持并发数量。比如我们平台白天最少有10个并发,则可以设置最小线程为5(2个CPU),或者服务端可能会遇到瞬间的超大并发量的请求,则可设置默认最小工作线程更大一点,可以快速处理请求。minWorkerThreads只对递增线程有影响,不影响稳定后的并发量。

5、最小空闲线程minFreeThreads参数的配置,有的官方资料建议配置成88*N的数量(如果maxWorkerThreads为100的情况),因为说为了留足够的空闲线程给系统用,但是经过测试,发现高压下,缺空闲线程真的空闲起来了,根本没有用,因此我觉得应该把这个值设置小一点,比如设置为80(maxWorkerThreads为100的情况),就会留下100*2-80=120个最大连接,在高压下就能建立120个线程,速度和效率会很快。

注意点:
1、CPU逻辑数量:按照物理CPU数量,如果CPU是超线程(多核)会再乘以2
2、同一时间可处理量不代表每秒可处理量,比如同一时间可以处理20个,可能每秒能处理200个,因为每个请求只要0.1秒。
3、注意配置节点中processModel里的maxWorkerThreads、maxIoThreads和minWorkerThreads、minIoThreads都只配置单CPU逻辑数量的值,计算时会自动乘以CPU逻辑数量。

4、配置节点包括:
System.web节点下:
 

代码示例:

System.web同级节点下
 

代码示例:




5、获取参数代码:
 

代码示例:
string result = string.Empty;
int maxWorkThread = 0;
int maxIOThread = 0;
int minWorkThread = 0;
int minIOThread = 0;
int workThread = 0;
int completeThread = 0;
ThreadPool.GetMaxThreads(out maxWorkThread, out maxIOThread);
ThreadPool.GetMinThreads(out minWorkThread, out minIOThread);
ThreadPool.GetAvailableThreads(out workThread, out completeThread);
result = DateTime.Now.ToString() + ":" + "rn";
result += "最大工作线程:" + maxWorkThread + ",最大IO线程:" + maxIOThread + "rn";
result += "最小工作线程:" + minWorkThread + ",最小IO线程:" + minIOThread + "rn";
result += "可用工作线程:" + workThread + ",可用IO线程:" + completeThread + "rn";
result += "rn";
 

(记录result,未使用StringBuilder,临时用一下)。


    
 
 

您可能感兴趣的文章:

  • 用C#,asp.net 做的网站,能用Linux做服务器吗?
  • c#(asp.net)接收存储过程返回值的方法
  • c#正则过滤图片标签 asp.net正则过滤的例子
  • c#(asp.net)实现的文件下载函数
  • asp.net(c#版)添加DataRow数据列到DataTable控件
  • c#(asp.net)连接excel的实例代码
  • c#(asp.net) new与override的区别
  • asp.net(c#) 使用Rex正则来生成字符串数组的代码
  • asp.ent 图片上传数据库的代码(c#)
  • c# asp .net 动态创建sql数据库表的方法
  • c#(asp.net)生成随机数(不重复)的例子
  • c#(asp.net)访问母版页的控件、属性、方法介绍
  • c#(asp.net) 时间操作基类(支持长短日期与时间差)
  • asp.net C#检查URL是否有效的方法
  • c# UpdatePanel无刷新上传图片 asp.net无刷新上传
  • c# asp.net 多线程实例(经典)
  • asp.net验证码代码(C#)
  • asp.net中C#获取字符串中汉字的个数的具体实现方法
  • asp.net(C#)生成无限级别菜单的代码
  • c#(asp.net)防止刷新重复提交数据的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp.net 禁用viewstate(web.config中配置)的方法
  • IIS7配置ASP详细错误信息发送到浏览器显示的方法
  • 1.请问用tomcat的主目录在哪儿配置? 2.有了jdk&tomcat是不是就可以了? 3.类似asp中的组件的东西在jsp中是什么?
  • ASP.NET 主题的简单配置教程
  • 如何在asp.net中配置fckeditor中的参数
  • IIS7中ASP.NET伪静态配置方法介绍
  • asp.net web.config配置连接字符串的方法
  • asp.net 操作config配置文件的方法介绍
  • (紧急SOS)请问怎样配置服务器使之既能解释Jsp又能解释ASp???高手帮忙!!!!
  • asp.net web.config 配置节详细说明
  • asp.net web.config伪静态规则配置示例
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3