服务器可用性指标

集群中的每个服务器都定期判断自己的工作负载,判断将基于服务器最近处理请求的响应时间作出。系统用 0 到 100 之间的数字表示工作负载,其中 0 表示服务器负载过重;100 表示服务器负载很轻。这个数值称为服务器的可用性指标。

关于此任务

随响应时间增加,服务器可用性指标减小。

服务器的可用性指标约等于仍然可用的总服务器容量百分比。例如,如果服务器的可用性指标为 65,则仍然有 65% 的服务器容量可用。尽管企业中的服务器功率和资源可能不同,但每台服务器上的服务器可用性指标都代表同一件事 -- 仍然可用的服务器容量。

服务器可用性指标基于扩展系数生成,用于指示服务器上的当前工作负载。扩展系数是由特定类型事件的响应时间与服务器曾经完成此类事务的最短时间之比决定的。例如,如果服务器当前执行“打开数据库”事务的平均时间为 12 毫秒,而服务器曾经执行“打开数据库”事务的最短时间为 3 毫秒,则“打开数据库”事务的扩展系数为 4(当前时间 12 毫秒除以最快时间 3 毫秒)。换言之,扩展系数决定完成当前事务所花的时间是在最佳条件下所花时间的多少倍。

Domino® 将每种事务的最短时间存储在内存和 LOADMON.NCF 文件中,服务器每次启动时都会读取该时间。服务器关机时,Domino® 会用最新信息更新 LOADMON.NCF 文件。

为确定当前的扩展系数,Domino® 会在指定的时间段内跟踪最常用的几种 Domino® 事务类型。缺省情况下,Domino® 会在 5 个时间段内跟踪这些事务,每段时间为 15 秒。然后,Domino® 就可以确定完成每种事务平均要花的时间,并用该时间除以它曾经完成每种同类事务所花的最短时间。这样就可确定每种事件的扩展系数。为确定整个服务器的扩展系数,Domino® 会取所有类型事务的扩展系数的平均值,并对最常用的事务类型给予较大的加权数。

当服务器繁忙时,对服务器添加更多负载会显著地影响服务器的性能和可用性。因此,向繁忙的服务器中添加负载也比向不繁忙的服务器中添加负载要更快地增大扩展系数。

因为各个服务器的速度、容量和处理能力各不相同,能够处理的工作负载也不尽相同。所以,两个不同服务器的扩展系数相同并不一定意味着二者能够承担相当的工作负载。例如,对于一个在空闲状态下执行事务都需要花费很长时间的小型服务器来说,扩展系数 40 可能表示用户需要等待若干秒才能得到响应。而对于一个处理速度非常快的超大型服务器来说,扩展系数 400 可能表示用户只需等待不到一秒的时间就能得到响应。

可用性指标如何与扩展系数比较

关于此任务

为确定可用性指标,Domino® 使用了一种可将扩展系数转换为仍然可用的服务器总容量百分比近似值的公式。下表显示从扩展系数转换为可用性指标的几个示例。

注: 下表中的值是根据扩展系数 64 生成的,该值表示服务器处于满负载状态。
1. 基于扩展系数 64 的示例

扩展系数

可用性指标

1<nozeros>

100<nozeros>

2<nozeros>

83<nozeros>

4<nozeros>

67<nozeros>

8<nozeros>

50<nozeros>

16<nozeros>

33<nozeros>

32<nozeros>

17<nozeros>

64<nozeros>

0<nozeros>

注: 扩展系数和可用性指标仅用于度量服务器响应时间,该时间通常只是客户机经历的响应时间的一小部分。例如,客户机和服务器之间的网络响应时间通常占客户机经历的响应时间的很大部分。

更改表示服务器处于满负载状态的扩展系数值

关于此任务

要有效利用 Domino® 工作负载平衡,必须调整扩展系数与可用性指标之间的关系,以便服务器在达到预期的故障转移工作负载时进行故障转移。通过指定表示服务器处于满负载状态的扩展系数值,可以实现此目的。Domino® 中的缺省值为 64。当扩展系数达到该值时,便可将服务器视为负载已满,可用性指标降为 0(零)。

注: 您可以使用“Show AI server”命令查看建议的可用性指标设置。

如果服务器的功能特别强大,处理速度特别快,则可提高表示服务器处于满负载状态的扩展系数值。对于一些处理速度极快的服务器来说,该值可以提高到几百或更高。如果服务器的处理速度特别慢,则可降低该值。

要更改表示满负载服务器的扩展系数值,请将下面的设置添加到 NOTES.INI 文件,然后重新启动服务器。

SERVER_TRANSINFO_RANGE=n 

对于 n 值,选择一个数字,使 2 的 n 次幂等于要指示满载服务器的扩展系数值。n 的缺省值为 6,这说明扩展系数值为 64,因为 2 的 6 次幂为 64。如果将 SERVER_TRANSINFO_RANGE 设置为 7,则指示满负载服务器的扩展系数值将变为 128。如果将 SERVER_TRANSINFO_RANGE 设置为 8,该值将变为 256。

要确定 SERVER_TRANSINFO_RANGE 的最优值,请执行下列操作:

过程

  1. 在服务器负载过重的期间内,监控服务器的扩展系数。可使用控制台命令 show stat server.expansionfactor 执行此操作。另外,还可以在这些期间内监控性能统计信息。记录有关此类期间的足够多的扩展系数值,以便确定使用哪个扩展系数值来表示服务器处于满负载状态。
  2. SERVER_TRANSINFO_RANGE 确定一个值,以 2 为底数该值为指数计算而得的值,即为在步骤 1 中选择的扩展系数值。

结果

如果更改了表示服务器处于满负载状态的扩展系数值,扩展系数与可用性指标之间的关系就会发生变化。下表列出了当 SERVER_TRANSINFO_RANGE 值为 8 时的一些扩展系数以及由之转换而来的可用性指标。因为 2 的 8 次幂为 256,所以本例中的最大扩展系数为 256。

2. 扩展系数转换为可用性指标的示例

扩展系数

可用性指标

1<nozeros>

100<nozeros>

2<nozeros>

88<nozeros>

4<nozeros>

75<nozeros>

8<nozeros>

63<nozeros>

16<nozeros>

50<nozeros>

32<nozeros>

38<nozeros>

64<nozeros>

25<nozeros>

128<nozeros>

13<nozeros>

256<nozeros>

0<nozeros>

服务器控制台命令“Show AI”用于获取此变量的适当值。让服务器带负荷工作一会儿后键入该命令,它会显示服务器扩展系数和 AI 的历史记录。

更改用于计算扩展系数的数据量

关于此任务

尽管不是必需的操作,但还是可以使用下列 NOTES.INI 设置来更改 Domino® 收集用以配置扩展系数的数据量。

  • 要更改 Domino® 使用的数据收集时间段数,请使用 NOTES.INI 设置 Server_Transinfo_Max=x,其中 x 是您希望 Domino® 使用的收集时间段数目。
  • 要更改每个数据收集时间段的时间长度,请使用 NOTES.INI 设置 Server_Transinfo_Update_Interval=x,其中 x 是每个时间段的长度(秒)。