如果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. php通过判断来源主机头进行防盗链

    check.php <html> <body> <form action="test.php" method="post"> ...

  2. swift 的高阶函数的使用代码

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  3. Android之vector代码修改颜色

    前言:google给了很多material design icon,在开发过程中,可以下载下来直接使用,下载地址为https://materialdesignicons.com/ . 1.下载图标,并 ...

  4. 一次发现underscore源码bug的经历以及对学术界『拿来主义』的思考

    事情是如何发生的 最近干了件事情,发现了 underscore 源码的一个 bug.这件事本身并没有什么可说的,但是过程值得我们深思,记录如下,各位看官仁者见仁智者见智. 平时有浏览园区首页文章的习惯 ...

  5. 1Z0-053 争议题目解析682

    1Z0-053 争议题目解析682 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 682.Identify the scenarios in which the RMAN CROS ...

  6. struts2学习笔记--OGNL表达式1

    struts2标签库主要使用的是OGNL语言,类似于El表达式,但是强大得多,它是一种操作对象属性的表达式语言,OGNL有自己的优点: 能够访问对象的方法,如list.size(); 能够访问静态属性 ...

  7. Cesium原理篇:6 Render模块(6: Instance实例化)

    最近研究Cesium的实例化,尽管该技术需要在WebGL2.0,也就是OpenGL ES3.0才支持.调试源码的时候眼前一亮,发现VAO和glDrawBuffers都不是WebGL1.0的标准函数,都 ...

  8. Node.js、express、mongodb 入门(基于easyui datagrid增删改查)

    前言 从在本机(win8.1)环境安装相关环境到做完这个demo大概不到两周时间,刚开始只是在本机安装环境并没有敲个Demo,从周末开始断断续续的想写一个,按照惯性思维就写一个增删改查吧,一方面是体验 ...

  9. CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突

    当RadioGroup与CompoundButton同时存在且都要监听事件时CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedCha ...

  10. 分离与继承的思想实现图片上传后的预览功能:ImageUploadView

    本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...