ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB2 V9.5工作负载管理(三)

DB2 V9.5工作负载管理(三)

原创 Linux操作系统 作者:rheet1978 时间:2008-12-15 16:44:13 0 删除 编辑
定义服务类(SERVICE CLASS)

服务类的目的是为工作运行定义一个执行环境,这个环境包含可用的资源和不同的执行阈值,当你定义一个工作负载时,你必须为之指定对应的服务类。如果你没有显式的定义工作负载,用户数据库请求会被认为是系统默认的工作负载,其对应的服务类是系统默认的用户服务类。所有的系统数据库请求,对应的都是默认系统服务类。

所有的数据库请求都是在服务类中执行的,并且在服务类中获得相应的资源。所有的连接都是映射到工作负载上的,所有的工作负载都是映射到服务类上的。针对服务类中资源分配的情况,可以定义相应的阈值,来进行限定。DB2的服务类拥有两层结构:服务父类(Service Superclass)和服务子类(Service Subclass)。

当你使用服务类时,你可以通过控制这个服务类的一系列属性,使不同的工作具有不同的优先级。比如,你可以设置服务类中工作的I/O页预取优先级,设置服务类中所有代理的CPU优先级,你还可以通过不同类型的阈值控制服务类中工作所使用的资源。

 

       下面我们打开一个DB2CLP窗口,发出ALTER SERVICE CLASS命令,使服务类super_class、服务子类subclass_rhette、subclass_db2admin失效,接着发出DROP SERVICE CLASS命令,删除服务类和服务子类。需要注意的是,如果你想删除一个服务父类(service superclass),需要保证所有相关的服务子类、工作负载、连接、动作、阈值等都无效。DROP SERVICE CLASS命令成功完成后,发出CREATE SERVICE CLASS命令,创建我们需要的服务父类和服务子类,具体如清单6所示:

 

- - 清单6 . 创建服务类和服务子类

 

C:\> db2 -tvf  create_serviceclass.sql

alter service class subclass_rhette under super_class disable

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

alter service class subclass_db2admin under super_class disable

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

alter service class super_class disable

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

drop service class subclass_rhette under super_class

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

drop service class subclass_db2admin under super_class

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

drop service class super_class

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0204N  " SUPER_CLASS " 是一个未定义的名称。  SQLSTATE = 42704

 

create service class super_class

DB20000I  SQL命令成功完成。

 

create service class subclass_rhette under super_class  agent priority default prefetch priority default collect activity data on all with details and values collect aggregate activity data base collect aggregate request data base

DB20000I  SQL命令成功完成。

 

create service class subclass_db2admin under super_class agent priority 6  prefetch priority high

DB20000I  SQL命令成功完成。

 

名称成功完成,需要注意的是我们在执行CREATE SERVICE CLASS命令时,指定了多个选项,下面来分别介绍一下:

Ø         AGENT PRIORITY DEFAULT or AGENT PRIORITY integer-constant

代理进程的优先级实际是CPU的优先级。

需要注意的是,使用这个属性只适用于用户请求对应的服务类,不适合系统数据库请求对应的系统服务类。你可以使用这个属性把当前服务类中代理的线程优先级和其他服务类区别开来。

 

AGENT PRIORITY integer-constant:指定运行在服务类中的代理相对于操作系统优先级的相对值。    AGENT PRIORITY DEFAULT:和运行在DB2中的线程一样的正常优先级。默认值是DEFAULT。当代理优先级设置为DEFAULT时,没有特殊的操作发生,服务类中的代理将按照所有的DB2线程一样的优先级进行调度。DEDAULT对应的值是-32768。

当这个参数设置成DEFAULT以外的值时,代理真正的优先级将是正常优先级加上AGENT PRIORITY,并将在下次动作时生效。比如,如果正常的优先级是20,并且我们把这个参数设置成6,那么服务类中的代理的优先级是20+6=26.

当服务父类的代理优先级设成default时,那么这个服务父类中的代理将按照和操作系统调度DB2线程一样的优先级进行调度。当服务子类的代理优先级设成default时,服务子类继承服务父类的进程优先级。默认的服务子类的代理优先级不能进行修改。

在Linux和UNIX平台,integer-constant的值可以是-20到20(值越小代表的优先级越高),在windows平台,integer-constant的值可以是-6到6(值越小代表的优先级月低)。

 

Ø         PREFETCH PRIORITY

你可以使用这个参数来控制服务类中代理的预取优先级。可选的值有high, medium, low. 当你设置了这个参数,服务类中的代理对应的预取顺序在下次将按照你设置的值进行。如果你在一个预取请求提交后再修改这个参数的值,那么这个预取请求将不受新的设置参数值映像。

DEFAULT :对一个数据库服务父类来说,默认的值是medium预取顺序。当你对数据库服务子类指定默认值时,服务子类将继承相应的服务父类的预取优先级。

HIGH :把预取优先级设成高的。

MEDIUM :把预取优先级设成中的。

LOW :把预取优先级设成低的。

Ø         COLLECT ACTIVITY DATA

指定当动作完成后服务类中执行的每个动作信息都发送到相应的事件监控器中。默认值是COLLECT ACTIVITY DATA NONE。COLLECT ACTIVITY DATA子句只适用于服务子类。

NONE :指定将不收集这个服务类中执行每个动作信息。

ON COORDINATOR DATABASE PARTITION:指定只收集动作所在数据库分区上的动作数据。

ON ALL DATABASE PARTITIONS :指定收集所有数据库分区上的动作数据。但是,动作细节和值还是只在动作所在的数据库分区上收集。

WITHOUT DETAILS :指定语句和编译环境不发送给事件监控器。

WITH DETAILS :指定将语句和编译环境发送给事件监控器。

AND VALUES :指定把动作相关的输入数据值发送给相应的事件监控器。

Ø         COLLECT AGGREGATE ACTIVITY DATA

指定捕获这个服务类相关的aggregate activity data并发送给相应的事件监控器。这些信息将被定期收集,收集的频率受工作负载管理收集时间间隔配置参数(wlm_collect_int)数据库配置参数控制。默认值是COLLECT AGGREGATE ACTIVITY DATA NONE. COLLECT AGGREGATE ACTIVITY DATA 子句只适用于服务子类。

BASE :指定这个服务类的基本aggregate activity data 将被捕获并发送给相应的事件监控器。

EXTENDED :指定这个服务类的所有aggregate activity data 将被捕获并发送给相应的事件监控器。

NONE :指定将不捕获这个服务类的aggregate activity data 。

Ø         COLLECT AGGREGATE REQUEST DATA

指定捕获这个服务类相关的aggregate request data并发送给相应的事件监控器。这些信息将被定期收集,收集的频率受工作负载管理收集时间间隔配置参数(wlm_collect_int)数据库配置参数控制。 默认值是COLLECT AGGREGATE ACTIVITY DATA NONE。 COLLECT AGGREGATE ACTIVITY DATA 子句只适用于服务子类。

BASE :指定这个服务类的基本aggregate request data 将被捕获并发送给相应的事件监控器。

NONE :指定将不捕获这个服务类的aggregate request data 。

 

Ø         工作负载管理收集时间间隔配置参数(wlm_collect_int)

此参数指定工作负载管理(WLM)统计信息的收集和复位时间间隔(以分钟为单位)。

每隔 x wlm_collect_int 分钟(其中 x 是 wlm_collect_int 参数的值),就会收集所有工作负载管理统计信息并将它们发送至任何活动统计信息事件监视器,然后复位统计信息。如果存在活动事件监视器,那么将根据该事件监视器的创建方式,将统计信息写入文件或表。如果它不存在,那么将只复位统计信息,而不进行收集。

可以使用统计信息事件监视器收集的工作负载管理统计信息来监视短期和长期系统行为。由于可以将结果合并在一起来获得长期行为,所以可以使用较小的时间间隔来同时获得短期系统行为和长期系统行为。但是,由于必须手动合并不同时间间隔中的结果,这将使分析变得复杂。如果不需要手动合并结果,那么较小的时间间隔会导致不必要的开销增大。因此,减小时间间隔以捕获较短期的行为,并且在只分析长期行为就已足够的情况下,增大时间间隔以减少开销。

需要对每个数据库定制时间间隔,而不是对每个 SQL 请求、命令调用或应用程序进行定制。没有其他配置参数需要考虑。

注: 所有 WLM 统计信息表函数都返回自上次复位统计信息以来累积的统计信息。将按此配置参数指定的时间间隔定期复位统计信息。

 

需要注意的是,默认的服务子类SYSDEFAULTSUBCLASS,自动为每个服务父类自动创建一个。我们可以通过系统视图SYSCAT.SERVICECLASSES,或者通过db2pd加–serviceclasses选项进行查看定义的服务类。

       继续在DB2CLP窗口中,发出DB2PD命令,查看我们创建的服务类情况,我们可以看到服务父类SUPER_CLASS,服务子类SUBCLASS_RHETTE、SUBCLASS_DB2ADMIN,以及默认创建的服务子类SYSDEFAULTSUBCLASS,具体如清单7所示:

- - 清单7 . 查看窗口的服务类

 

Database Partition 0 - - Database DB2TEST1 - - Active - - Up 0 days 06 : 26 : 15

Service Classes:

. . . . . . . . . .                

Service Class Name        = SUPER_CLASS

Service Class ID          = 14                 

Service Class Type        = Service Superclass

Default Subclass ID       = 15                 

Service Class State       = Enabled

Agent Priority            = Default

Prefetch Priority         = Default

Outbound Correlator       = None

Work Action Set ID        = N/A

Collect Activity Opt      = None

Num Connections               = 0                  

Last Statistics Reset Time     = 2007 - -12 - 27 13:33:05.000000

Num Coordinator Connections   = 0                  

Coordinator Connections HWM   = 0                  

 

Associated Workload Occurrences ( WLO ) :

AppHandl [ nod - index ]  WL ID        WLO ID       UOW ID  WLO State

 

Service Class Name        = SYSDEFAULTSUBCLASS

Service Class ID          = 15                 

Service Class Type        = Service Subclass

Parent Superclass ID      = 14                 

Service Class State       = Enabled

Agent Priority            = Default

Prefetch Priority         = Default

Outbound Correlator       = None

Collect Activity Opt      = None

Collect Aggr Activity pt = None

Collect Aggr Request Opt  = None

Act Lifetime Histogram Template ID          = 1         

Act Queue Time Histogram Template ID        = 1         

Act Execute Time Histogram Template ID      = 1         

Act Estimated Cost Histogram Template ID    = 1         

Act Interarrival Time Histogram Template ID = 1         

Request Execute Time Histogram Template ID  = 1         

 

Access Count              = 0                  

Last Stats Reset Time     = 2007-12-27 13:33:05.000000

Activities HWM            = 0                  

Activities Completed      = 0                  

Activities Rejected       = 0                  

Activities Aborted        = 0                   

 

Associated Agents:

EDU ID       AppHandl [ nod-index ]  WL ID        WLO ID       UOW ID      Activity ID

 

Associated Non-agent threads:

PID          TID                   Thread Name                  

 

Service Class Name        = SUBCLASS_RHETTE

Service Class ID          = 16                 

Service Class Type        = Service Subclass

Parent Superclass ID      = 14                 

Service Class State       = Enabled

Agent Priority            = Default

Prefetch Priority         = Default

Outbound Correlator       = None

Collect Activity Opt      = On all partitions with details and values

Collect Aggr Activity pt = Base

Collect Aggr Request Opt  = Base

Act Lifetime Histogram Template ID          = 1         

Act Queue Time Histogram Template ID        = 1         

Act Execute Time Histogram Template ID      = 1         

Act Estimated Cost Histogram Template ID    = 1         

Act Interarrival Time Histogram Template ID = 1         

Request Execute Time Histogram Template ID  = 1         

 

Access Count              = 0                  

Last Stats Reset Time     = 2007-12-27 13:33:05.000000

Activities HWM            = 0                  

Activities Completed      = 0                  

Activities Rejected       = 0                   

Activities Aborted        = 0                  

 

Associated Agents:

EDU ID       AppHandl [ nod-index ]  WL ID        WLO ID       UOW ID      Activity ID

 

Associated Non-agent threads:

PID          TID                   Thread Name                   

 

 

Service Class Name        = SUBCLASS_DB2ADMIN

Service Class ID          = 17                 

Service Class Type        = Service Subclass

Parent Superclass ID      = 14                 

Service Class State       = Enabled

Agent Priority            = 6                  

Prefetch Priority         = High

Outbound Correlator       = None

Collect Activity Opt      = None

Collect Aggr Activity pt = None

Collect Aggr Request Opt  = None

Act Lifetime Histogram Template ID          = 1         

Act Queue Time Histogram Template ID        = 1         

Act Execute Time Histogram Template ID      = 1         

Act Estimated Cost Histogram Template ID    = 1         

Act Interarrival Time Histogram Template ID = 1         

Request Execute Time Histogram Template ID  = 1         

 

Access Count              = 0                  

Last Stats Reset Time     = 2007-12-27 13:33:05.000000

Activities HWM            = 0                  

Activities Completed      = 0                  

Activities Rejected       = 0                  

Activities Aborted        = 0                  

 

Associated Agents:

EDU ID       AppHandl [ nod-index ]  WL ID        WLO ID       UOW ID      Activity ID

 

Associated Non-agent threads:

PID          TID                   Thread Name                   

 

我们也可以通过控制中心查看系统视图SYSDEFAULTSUBCLASS,来看一下我们创建的服务类情况,具体如图2所示:

图2 . 查看已定义的服务类

image004.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9524210/viewspace-511956/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-06-09

  • 博文量
    84
  • 访问量
    530942