如果Reporting Service偶尔出现不可访问或访问出错情况,这种情况一般没有做监控的话,很难捕捉到。出现这种问题,最好检查Reporting Service的日志文件。

今天早上就遇到这样一个案例,应用程序监控到调用SQL SERVER 2005的Reporting Service出现Method failed: HTTP/1.1 500 Internal Server Error 。检查C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\LogFiles下的日志文件,发现出现问题时段,有如下错误信息:

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

w3wp!runningjobs!1!8/4/2015-08:50:58:: w WARN: Thread pool pressure. Using current thread for a work item.

关于这个告警信息,网上有不少资料建议调大IIS下面的应用程序程序池(Application Pools)下ReportServer以及ReportService的最大工作进程数(“Maximum number of worker processes")参数。这样就能扩大同时并行处理的报表数量。

if you are using IIS 6, you can increase the number of worker processes for the Report Server application pool. You can use this value to scale up the number of reports you can run concurrently. So the number you would need is approx. max. number of concurrent requests * number of concurrent database fetches in report.

那么如何设置最大工作进程数(“Maximum number of worker processes"),有篇文章介绍了下: 按核设置最大工作线程数。 但是由于有些服务器上面还部署有其它应用,还是要根据具体应用场景设置,设置完成后监控性能计数器( performance counters )来判断设置值是否合理。

Some searches brought back some information suggesting increasing the number of worker threads but other than a description of what the warning meant not much else.
There was one post which suggested one process per socket, that would equate to 4 on our servers, but that didn't seem much change especially as one of our servers was set to 1 and the other to 5.
I suggested we should set this to at least 1 per core which would give us 16 and then monitor carefully. My colleague had done some research about queues and put up some performance counters to watch this alongside process explorer to actually see how many processes fired up.

参考资料:

http://sqlblogcasts.com/blogs/grumpyolddba/archive/2010/05/03/w-warn-thread-pool-pressure-using-current-thread-for-a-work-item.aspx

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/659f2e2c-a58b-4770-833b-df96cabe569e.mspx?mfr=true

Reporting Service 告警"w WARN: Thread pool pressure. Using current thread for a work item"的更多相关文章

  1. Improve Scalability With New Thread Pool APIs

    Pooled Threads Improve Scalability With New Thread Pool APIs Robert Saccone Portions of this article ...

  2. The CLR's Thread Pool

    We were unable to locate this content in zh-cn. Here is the same content in en-us. .NET The CLR's Th ...

  3. MySQL Thread Pool: Problem Definition

    A new thread pool plugin is now a part of the MySQL Enterprise Edition.In this blog we will cover th ...

  4. MySQL学习分享--Thread pool实现

    基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...

  5. ThreadPoolExecutor – Java Thread Pool Example

    https://www.journaldev.com/1069/threadpoolexecutor-java-thread-pool-example-executorservice   Java t ...

  6. The threads in the thread pool will process the requests on the connections concurrently.

    https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html Most of the executor implem ...

  7. ThreadPoolExecutor – Java Thread Pool Example(如何使用Executor框架创建一个线程池)

    Java thread pool manages the pool of worker threads, it contains a queue that keeps tasks waiting to ...

  8. ThreadPoolExecutor – Java Thread Pool Example(java线程池创建和使用)

    Java thread pool manages the pool of worker threads, it contains a queue that keeps tasks waiting to ...

  9. 使用boost实现线程池thread pool | boost thread pool example

    本文首发于个人博客https://kezunlin.me/post/f241bd30/,欢迎阅读! boost thread pool example Guide boost thread pool ...

随机推荐

  1. 搭建SSH详细步骤及相关说明

    因为手里已有相关jar,为方便我搭建的是:Struts2.0+Hibernate3.3+Spring3.0,数据库:MySQL 如果想搭建最新的,在官网上下载最新jar即可. 这里会对比MyEclip ...

  2. 倾情大奉送--Spark入门实战系列

    这一两年Spark技术很火,自己也凑热闹,反复的试验.研究,有痛苦万分也有欣喜若狂,抽空把这些整理成文章共享给大家.这个系列基本上围绕了Spark生态圈进行介绍,从Spark的简介.编译.部署,再到编 ...

  3. 【Java心得总结五】Java容器上——容器初探

    在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...

  4. 模拟QQ聊天系统-安卓源代码

    利用课余时间随便写的一个小东西,都是一起学习. 先上图: package com.example.nanchen.listviewdemo.adapter; import android.conten ...

  5. Java 实现批量重命名,亲测可用(精简版)

    之前在网上下载了很多视频,解压缩后,发现里面每个文件前面都有一长串的网址,导致我根本看不清每个视频的名字到底叫什么? 网上搜了一些批量重命名的方法,可都不是我想要的,既然这样,干脆自己动手用Java写 ...

  6. 关于jqGrig如何写自定义格式化函数将JSON数据的字符串转换为表格各个列的值

    首先介绍一下jqGrid是一个jQuery的一个表格框架,现在有一个需求就是将数据库表的数据拿出来显示出来,分别有id,name,details三个字段,其中难点就是details字段,它的数据是这样 ...

  7. 7.10 数据注解特性--NotMapped

    NotMapped特性可以应用到领域类的属性中,Code-First默认的约定,是为所有带有get,和set属性选择器的属性创建数据列.. NotManpped特性打破了这个约定,你可以使用NotMa ...

  8. 【Win10开发】相对布局——RelativePanel控件

    我们知道,Win10引入了Universal Windows Platform,那么我们针对不同的平台该有不同的布局,此时我们就需要相对布局,就会用到RelativePanel这个控件.我们不再将控件 ...

  9. 【C#进阶系列】29 混合线程同步构造

    上一章讲了基元线程同步构造,而其它的线程同步构造都是基于这些基元线程同步构造的,并且一般都合并了用户模式和内核模式构造,我们称之为混合线程同步构造. 在没有线程竞争时,混合线程提供了基于用户模式构造所 ...

  10. IOS 动画播放案例

    #import "ViewController.h" @interface ViewController () @property (weak,nonatomic) IBOutle ...