WEB开发网
开发学院数据库MSSQL Server SQL Server 2005可伸缩性和性能的计划(3) 阅读

SQL Server 2005可伸缩性和性能的计划(3)

 2007-05-15 09:28:05 来源:WEB开发网   
核心提示:ASP.NET 应用程序性能统计类绝大多数关于ASP.NET应用程序性能统计类的信息,最近整理到了一个综合性的文档中叫做“改进.NET应用程序性能和扩展性”,SQL Server 2005可伸缩性和性能的计划(3),以下的表格描述了一些监控和优化ASP.NET应用程序性能的重要的统计类,包括报表

ASP.NET 应用程序性能统计类

绝大多数关于ASP.NET应用程序性能统计类的信息,最近整理到了一个综合性的文档中叫做“改进.NET应用程序性能和扩展性”。以下的表格描述了一些监控和优化ASP.NET应用程序性能的重要的统计类,包括报表服务。

性能对象

统计类

实例

描述

处理器

% 处理器时间

__Total

% 处理器时间监控了Web服务器计算机的CPU利用情况。低CPU利用或者无法增加CPU利用,不考虑客户负荷,意味着在你的Web应用程序上有资源和锁之间的竞争。

进程

% 处理器时间

aspnet_wp 或者 w3wp,依赖于IIS的版本

ASP.NET处理所消耗的处理器时间百分比。当你将在标准负荷下的性能和以前捕获的基线进行比较,在统计类中减少了说明更低的处理器需求和改进了扩展性。

进程

工作规定

aspnet_wp 或者 w3wp,依赖于IIS的版本

ASP.NET激活时使用的内存数量。虽然应用程序开发人员能最好地控制应用所需的内存数量,但是管理人员通过调整会话超时周期可以明显地影响内存占用数量。

进程

私有字节

aspnet_wp 或者 w3wp,依赖于IIS的版本

私有字节是目前内存的字节大小,由本处理占用的,不可以和其他处理进行共享。一些瓶颈会导致工作处理占用比期待更多的内存。突然出现了统计类跌到0说明ASP.NET应用程序开始重启,由于无法预料的问题。为了校验,监控ASP.NET应用程序重启。

ASP.NET 应用程序

请求/秒

__Total

允许你核实请求是按最快的速度进行处理的。如果每秒请求的数量少于每秒请求产生的数量,队列就产生了。说明已经超出了最大的请求数。

ASP.NET 应用程序

错误统计

__Total

在执行HTTP请求期间发生的总的错误数。包括所有的转化,编译,和运行时错误。统计类是这些错误的汇总。一个良好功能的Web 服务器不应该产生许多错误。如果在ASP.NET Web应用程序上发生了错误,他们的出现可能使实际结果出现偏差。

ASP.NET

请求执行时间

以毫秒来显示时间,是产生上一个请求页面到传输到用户的时间。这个统计类的时间将会大一点,是一个从开始到结束请求时间更综合的测量。如果统计类显示比基线更低的平均值,那么扩展性和应用程序的性能都提高了。

ASP.NET

应用程序重启

Web服务器在生命周期内重启的次数。每个应用程序OnEnd事件和应用程序重启同时增加。

应用程序重启一般发生在改变Web.config文件,改变了应用程序的in目录,或者在Web Forms pages有太多的更改。在统计类中有无法预料的增加,说明一些预想不到的问题导致Web应用程序关闭

在这种情况下你应该调查事故原因。

ASP.NET

请求排队

在队列中等待服务的请求数量。

当队列中有请求时,说明请求数量超出了能处理的请求最大值。默认情况下该统计类的值是5,000。你可以在机器的config文件中改变该值。

ASP.NET

工作进程重启

在服务器上,工作进程重启的次数。如果工作进程出现意外的失败或者故意循环,可以重启工作进程。当统计类出现了不可意料的增加,你应该调查原因。

除上一个表格中的核心控制外,以下的表格的性能统计类提供了增加值,当你试图诊断特定的ASP.NET应用程序性能问题。

性能对象

统计类

实例

描述

ASP.NET应用程序

Pipeline Instance Count

__Total

特定ASP.NET应用程序的请求管道数量。由于仅仅有一个执行线程可以在管道内运行,该数据给出了并发请求最大的数量。在绝大多数情况下,当低于负荷时该数据最好低一点,说明处理器利用良好。

.NET CLR Exceptions

# of Exceps Thrown

显示在应用程序中的抛错数。无法意料的增加可能出现了性能问题。仅仅存在错误不是有必要关心的原因,因为一些代码路径依赖于正常运行的抛错,如HttpResponse。重定位方式通过抛出无法捕获的错误,ThreadAbortException。这对跟踪ASP.NET应用程序更有效。通过错误总的统计类来决定应用程序是否产生了无法预期的错误。

系统

Context Switches/ sec

衡量线程上下文在Web服务计算机上通过所有处理器转换的比率。如果统计类值过高,说明通过线程,在用户和核心模式之间有锁或者转换竞争。通过简单的工具来进行深入调查,应该被授权。

报表服务性能统计类

报表服务包括它自己的性能统计类和资源消耗。在Windows性能监控工具上出现了两个对象,使你能监控实例和部件活动的状态:MSRS 2005 Web服务和MSRS 2005 Windows 服务对象。MSRS 2005 Web服务性能对象包括一个统计类集,用来跟踪报表服务处理。

当ASP.NET停止Web服务时,这些统计类都需要重新设置。下面这个表提供了统计类清单,这些统计类可用来监控报表服务器性能,同时也对目标做了描述。

性能对象: RS Web 服务

统计类

描述

活动的会话

活动的会话数。这个统计类提供了所有没有超期的浏览会话数。这不是同时进行请求的数目,该数据存储在ReportServerTempDB数据库中。

缓存命中数/秒

重新从目录中检索到的每秒报表请求数。当该值增加了,而内存缓存的命中率却没有增加,意味着报表数据没有经过再处理,但是页面进行了重新显示。在联合内存缓存Hits/Sec时,利用这个统计类决定用于缓存、磁盘或者内存的资源是否充足。

缓存命中失败数/秒

从目录中返回报表失败的请求数。联合内存缓存Misses/Sec时,利用这个统计类决定用于缓存、磁盘或者内存的资源是否充足。

第一个会话请求/秒

每秒从报表服务器缓存开始的新用户会话数。

内存缓存命中数/秒

每秒从内存缓存中重新检索报表的次数。内存缓存是报表服务缓存的一部分,它存储了在内存或者临时文件中的显示报表。这将为请求提供最好的性能,因为没有处理的必要。当内存缓存被用时,报表服务器不能为了缓存内容而查询SQL Server。

内存缓存未命中数/秒

报表不能从内存缓存中重新检索的每秒次数。

下一个会话请求/秒

每秒能进行的下一个会话请求数

报表请求

被报表服务器激活和被处理的报表数

报表执行/秒

每秒执行的报表数。这个统计类提供了报表量的统计。

利用这个值可以和从缓存中执行报表请求的时间进行对比。

请求/秒

每秒向报表服务器发出的请求数。这个统计类跟踪了由报表服务器处理的所有类型的请求。

总的缓存命中数

从服务启动之后报表请求总的缓存命中数。当停止Web服务时,该统计类将重新设置。

总的缓存未命中数

从服务启动之后报表请求总的缓存未命中数。当停止Web服务时,该统计类将重新设置。可以据此判断磁盘空间和内存是否充足。

总的内存缓存命中数

从服务启动之后报表请求总的内存缓存命中数。当停止Web服务时,该统计类将重新设置。内存缓存是缓存的一部分,在CPU内存中存储报表。当内存缓存被用时,报表服务器不能为了缓存内容而查询SQL Server。

总的内存缓存未命中数

从服务启动之后报表请求总的内存缓存未命中数。当停止Web服务时,该统计类将重新设置。

总的处理失败数

从服务启动之后报表请求总的处理失败数。当停止Web服务时,该统计类将重新设置。处理失败可能源自报表处理器或者任何的扩展。

总的请求执行数

从服务启动之后成功执行报表的数目。

总的请求数

从服务启动之后总的请求数。

RS Windows服务性能对象包括一个统计类集,用来跟踪报表处理,这些处理是通过预定的操作来初始化的。预定的操作包括订阅和交付,报表执行快照和报表历史。当微软工作量不包含任何预定的或者交付的操作时,这些性能统计类列在这里,仅供方便使用。性能对象被用来监控报表服务器Windows服务。如果你在一个向外扩展的配置上远行报表服务器,该计算将应用到已选的服务器,而不是整个向外扩展的配置。

当应用程序域循环时,这些统计类要重新设置。以下的表格提供了一系列统计类,这些统计类用来监控预定和交付,还有描述。

统计类

描述

清空缓存数/秒

每秒钟清空缓存的数量

缓存命中数/秒

缓存报表每秒的请求数

缓存未命中数/秒

未能从缓存中读取报表的每秒请求数

交付数/秒

从任何交付范围,每秒交付的报表数

事件数/秒

每秒处理的事件数。监控的事件包括SnapshotUpdated 和 TimedSubscription。

内存缓存命中数/秒

每秒从内存缓存中重新检索报表的次数

内存缓存未命中数/秒

每秒未能从内存缓存中重新检索报表的次数

报表请求数

由报表服务器处理和激活的报表数。利用这个统计类评估缓存策略。请求明显多于报表执行。

报表执行数/秒

每秒钟成功执行的报表数

快照更新数/秒

每秒钟预定更新的快照数

总的App域循环数

从服务开启后,总的App域循环数

总的缓存清空数

从服务开启后,总的报表服务器缓存更新数

总的缓存命中数

从服务开启后,总的从缓存中得到报表的请求数

总的缓存未命中数

从服务开启后,总的不能从缓存中得到报表的次数。利用这个统计类可以决定是否需要更多的磁盘空间或者内存。

总的交付数

包括所有的交付数。

总的事件数

从服务开启后,总的事件数。

总的内存缓存命中数

从服务开启后,总的从内存缓存中得到的报表数。

总的内存缓存未命中数

从服务开启后,总的从内存缓存中未能得到的报表数。

总的处理失败数

从服务开启后,总的报表处理失败数。处理失败的原因可能是报表处理器或者任何扩展。

总的被拒绝的线程数

总的被拒绝的线程数,由于异步处理和随后的处理在相同的线程里。

总的报表执行数

总的报表执行数。

总的请求数

从服务开启后,成功执行报表的数。

总的快照更新数

从服务开启后,总的快照更新数。

如果你对报表服务还有性能争议问题,记下以下性能统计类非常有帮助:

ASP.NET, ASP.NET 应用程序, 进程, 系统,内存, 物理磁盘, .NET 异常, .NET 内存, .NET 装载, .NET CLR Locks 和 Threads, 和.NET CLR 数据。

可选的报表服务性能统计类

以下是一个性能统计类集,应用于RS Web服务上,但不是默认安装。当执行性能优化时,这些可以给你提供参考。为了实现这些,在命令框执行以下的语句:

Installutil.exe /u ReportingServicesLibrary.dll,随后是:Installutil.exe ReportingServicesLibrary.dll

成功执行这个语句后,你首先需要修改你的路径,包含微软.NET框架安装时的目录位置。然后执行从目录中执行前面的语句,目录包含了ReportingServicesLibrary.dll文件。默认情况下,这是安装在C:Program FilesMicrosoft SQL ServerMSSQLMSSQL.instanceReporting ServicesReportServerin里面。这些统计类没有全部列出。

活动数据库连接数

在某一时间内的活动数据库连接数。仅仅指连接到报表服务目录的数目。

活动数据源连接数

在某一时间内的活动数据库连接数。正在运行的报表连接到源数据的连接数。

活动线程数

当前活动的线程数。在Web服务中,它包含了和服务请求相关的线程。在交付服务中,它包含了工作线程、维持和检测线程。

字节数

为了上一次请求,当显示当前报表时向客户返回的字节数。类似于相应的执行日志入口。

行数

为了上一次请求,由目前报表返回的行数。类似于相应的执行日志入口。

压缩时间

为了上一次请求,花费在压缩快照和PDF上的毫秒数。

数据源访问时间

为了上一次请求,花费在访问报表数据源信息上的毫秒数。包括执行查询和获取结果。类似于相应的执行日志入口。

数据库时间

为了上一次请求,花费在访问报表服务器目录信息上的毫秒数。

处理时间

为了上一次请求,花费在报表处理上的毫秒数。这类似于相应的执行日志入口。

显示时间

为了上一次请求,花费在报表显示上的毫秒数。这类似于相应的执行日志入口。

报表服务执行日志

报表服务执行日志是一个额外的为了监控报表服务性能的信息源。日志包括报表信息,报表是由服务器执行的或者通过向外扩展的多个服务器执行的。你可以使用报表执行日志找到多长时间有一次报表请求,什么格式最常用,花费在每个处理阶段上的处理时间百分比。不同于性能监控对象,它不需要当应用程序域循环或者ASP.NET停止Web服务时进行重新设置,执行日志的结果保持完好,除非你重新设置它们。

另外一个使用执行日志的好处是,它可以更好地知道报表花费了多少检索时间,多少处理时间,形成请求格式的显示时间。这些细节信息对识别和调试性能瓶颈有着不可估量的价值。

报表执行日志捕获了一下信息:

◆处理请求的报表服务器实例的名字。

◆报表标识。

◆用户标识。

◆用户或者系统的请求类型。

◆显示格式。

◆执行报表的参数值。

◆开始和停止的次数表示了报表进程的持续时间。

◆知道报表花费在检索,处理,形成请求格式的时间百分比。

◆报表执行源 (1=实况, 2=缓存, 3=快照, 4=历史数据)。

◆状态,成功或出错的代码,如果多个错误并发,仅能记录第一个错误。

◆显示报表的字节大小。

◆查询返回的数据行数。

关于报表执行的报表服务日志数据以表格的形式存在目录中。这个表不能提供自己完整的信息,也不能给出用户能明白的格式数据。为了查看报表执行数据,你首先应该运行集成服务包,它来自报表服务样例。然后,从执行日志抽取数据并放到一个表结构中,这样就容易被查询。

这是首先的、值得推荐的方式,因为在目录内部的表结构可能会随着产品的版本而改变。

如果需要更多的关于如何安装,配置,从报表服务器执行日志访问数据等信息,请查询在线的“Querying and Reporting on Report Execution Log Data”一文。

Tags:SQL Server 可伸缩性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接