【IT168 技术文档】
对于系统如何提供不同的服务质量的相应的需求,可以概述成以下的叙述:一个 SaaS 应用程序可能由三个不同用户使用。一个用户可能希望响应时间平均值小于 2 秒,而其他两个用户可能对 5 秒的响应时间就感到满意了。并且对于达到响应时间平均值小于 2 秒的用户收取较多的资费,而对于达到 5 秒的响应时间的用户收取较低的资费。
并且由于 SaaS 应用的特点(如高并发),导致它所依赖的数据库活动量非常大,系统资源(如 CPU、I/O 和内存)的争用情况非常的普遍,如果要达到上面所述的服务质量将非常的困难,为了实现上面所述按需提供 SaaS 用户所需要的服务质量功能,我们将需要利用 DB2 V9.5 中提供的工作负载管理引擎。通过利用 DB2 V9.5 中的工作负载管理引擎将轻松的达到我们所需要的功能即针对不同等级的用户按需提供不同的服务质量。
DB2 V9.5 的工作负载管理功能使您可以更深入地洞察系统的运行情况并更好地控制资源和性能。DB2 V9.5 的这项功能执行以下任务:
- 通过使用工作负载定义自动标识工作、将工作负载分配给服务类并将资源分配到每个服务类,可以将工作划分为易管理的逻辑组。您可以捕获详细的工作负载概要文件和性能信息,以帮助优化您的工作负载定义和服务类定义。
- 您可以通过成本、时间和并行性阈值来控制执行情况,这使您可以控制流氓查询并有助于达到服务级别协议(SLA)目标。通过使用阈值,系统可以自动对不良情况作出反应或在它发生前进行预测。当您控制了长时间运行且复杂的查询的影响后,您就可以使事务保持平稳运行。
- 您可以跟踪处理的每个阶段,以便可以为用户提供最新的状态信息。
下图显示如何评估发送至数据服务器的多个请求、如何将它们分配到特定的工作负载以及如何在适用的服务类中执行这些请求。不能与您定义的工作负载匹配的请求将分配到缺省工作负载,然后在缺省服务类中执行此工作负载。
SLA 是组之间的一个正式协议,它定义组之间的期望值并包含服务、优先级和职责等各项的目标。SLA 目标通常使用响应时间目标来表示。例如,特定的“人力资源”报表可能需要在平均 5 分钟内运行完成。
增强的 DB2 工作负载管理功能可以帮助您标识一组已定义的数据库活动并将它们隔离在自己的执行环境中,您可以对这些活动分配达到您的目标所需要的适当资源。在环境或服务类中,您可以显式管理系统资源,以便较重要的资源可供较高优先级的工作使用,并可以控制或消除与较低优先级工作的争用情况。
您通过对每种不同类型的客户使用服务类来隔离数据服务器上的活动。例如,您可以按组来设置工作负载,然后对该组分配一个具有较少资源的不同服务类。在您设置服务类后,您可以轻松地收集并监视聚集活动统计信息,以确保满足每个客户的 SLA 目标。从而使您可以根据接收到的服务级别对每个客户进行收费。
示例如下:我们假设一个 SaaS 应用程序可能由三个不同用户使用。用户 1 可能希望响应时间平均值小于 2 秒,而用户 2 和用户 3 可能希望 5 秒之内的平均响应时间;从这可以看出这里有两个服务等级,服务等级 1 需要的服务质量是使服务的响应时间在 2 秒之内,服务等级 2 需要的服务质量是使服务的响应时间在 5 秒之内。于是我们在 DB2 V9.5 中定义两个服务类:
ServiceClass1(这个服务类具有更多的系统资源)和ServiceClass2(这个服务类具有较少的系统资源);然后把 ServiceClass1 赋给用户 1,ServiceClass2 赋给用户 2 和用户 3。通过这样的配置,我们就能够实现所需要的功能。
