Win Server 2008 服务多线程管理有关问题

Win Server 2008 服务多线程管理问题最近有一个项目,用的是.Net4.0, 写的是WCF托管在IIS7下的服务。在这个

Win Server 2008 服务多线程管理问题

最近有一个项目,用的是.Net4.0, 写的是WCF托管在IIS7下的服务。

在这个服务里面,每个过来的请求一般会开15个单独的线程来处理一些业务。

为了提高性能,我们买了一组性能不错的服务器,可是部署上后,吞吐量仅仅是原来的三分之一。

经过了3天的分析,没有找原因,后来发现,原来用的是Windows Server 2008 Standard 版本,新的服务器用的是Windows Server 2008 DataCenter。

新的机器安装了Standard版本后,呵呵,问题竟然消失了。后来又试验Windows Server 2012 Standard, 性能又有5分之一的提高。


另外在这里需要说明的是,如果后台用多线程,注意c#中的Task.Factory.StartNew默认的用的是线程池里面的线程。如果有大量长时间任务多线程在IIS里面用的话,会严重影响系统的吞吐量。因为IIS也用的是线程池里面的线程。因此建议用创建Task的选项里面的LongRunning, 这个就会避免用线程池里面的线程。