用于系统日志的结构大小

您可以使用 z Systems ® 耦合设施结构 Sizer 工具 (CFSizer) 或提供的公式来计算主系统日志 DFHLOG 和辅助系统日志 DFHSHUNT 的存储需求。

CFSizer 计算假定耦合设施处于当前的 CFLEVEL。 提供的公式假定耦合设施处于 CFLEVEL 11。

您可使用这些计算的结果,在 CRFM 策略中设置耦合设施资源管理器 (CFRM) INITSIZESIZE 参数。

由于写入主系统日志的数据量与写入辅助系统日志的数据量有很大差别,因此主系统日志流和辅助系统日志流必须放置于不同的结构中。

通常, CICS® 在任何时候保留在主系统日志中的数据量略大于在一个活动关键点时间间隔内写入的数据量。 此卷由活动关键点频率确定,该频率以针对 CICS 系统日志流输出缓冲区的写请求数度量,并在 AKPFREQ 系统初始化参数上定义。 规划耦合设施结构大小时,请复审针对 AKPFREQ 参数指定的值。

使用 CFSizer 来确定结构大小

CFSizer 是基于 Web 的应用程序,与处于当前 CFLEVEL 的耦合设施进行通信以计算存储器需求。 对于主系统日志和辅助系统日志,它可计算适合 INITSIZESIZE 参数的值。 请参阅 System z 耦合设施结构 Sizer 工具 (CFSizer) Web 页面

要使用 CFSizer 来计算系统日志的存储器需求,请输入以下信息:
最大缓冲区大小
可写入日志流的最大日志块的大小(字节)。 该值必须为 1 到 65532 之间。 该值对应于日志流耦合设施结构的定义中的 MAXBUFSIZE 值。 请参阅 定义耦合设施结构
平均缓冲区大小
写入所有日志流的日志块的平均大小(字节)。 该输入用于确定列表结构的初始项/元素率。 该值对应于日志流耦合设施结构的定义中的 AVGBUFSIZE 值。 请参阅 定义耦合设施结构

在 IXGRPT1 和 IXGRPT1J 生成的系统记录器报告中也提供了该值。 请参阅 分析系统记录器数据 (SMF 类型 88 记录)

Highoffload
日志流的高卸载阈值。 当该百分比的耦合设施结构已满时,系统记录器会开始将数据从主存储器卸载至卸载数据集。 对于 CICS 日志流,此值通常介于 80 到 85 之间。 请参阅 检查日志流状态日志流定义上的 LOWOFFLOAD 和 HIGHOFFLOAD 参数

有关卸载阈值参数的更多信息,请参阅 z/OS MVS Setting Up a Sysplex

每段时间间隔的写入请求数
在数据收集时间间隔期间写入日志流的日志块的数量(来自使用日志流的所有系统的总数)。 此值在 CICS 统计信息报告中可用。 请参阅 日志流统计信息日志流报告

在 IXGRPT1 和 IXGRPT1J 生成的系统记录器报告的 #WRITES INVOKED 数据中也提供了该值。 请参阅 分析系统记录器数据 (SMF 类型 88 记录)

时间间隔长度(秒)
收集写入次数的时间间隔(秒)。 此值在 CICS 统计信息报告中可用。 请参阅 统计信息域: 摘要全局统计信息
运行时间最长的任务(秒)
数据收集时间间隔期间运行时间最长的事务的持续时间(秒)。 这不是平均响应时间。
日志尾删除次数
在数据收集时间间隔内, CICS 执行日志尾部删除的次数。 此值在 CICS 统计信息报告中可用。 请参阅 日志流统计信息日志流报告中的删除请求,流删除或日志流删除。 您还可通过使用区域的作业日志并计算在时间间隔期间发出的 DFHLG0743 消息的数量来确定该值。

针对 DFHLOG 计算 INITSIZE

要计算在 CFRM 策略中针对主系统日志使用的 INITSIZE 值,请使用以下公式:
INITSIZE = 310 + ( LOGSNUM * A * B / 1024)
其中:
  • A = 2000 + (number_of_entries + 5)
  • B = (AVGBUFSIZE * 1.1289) + 195
要计算 number_of_entries 的值,请使用以下公式:
number_of_entries =  ((akpintvl + trandur) * writespersec) / 0.9
其中:
  • akpintvl 是活动关键点之间的时间间隔,它随工作负载变化。 请按以下方式进行计算:
    akpintvl = AKPFREQ / ((N1 * R1) + (N2 * R2) + (Nn * Rn) )
    其中:
    • N1, N2 .... Nn 是每个事务的事务速率 (每秒事务数)。
    • R1, R2 .... Rn 是每个事务写入的日志记录数。
  • trandur 是作为正常工作负载的一部分运行且运行时间最长的事务的执行时间(同步点之间)。
    如果这段持续时间比 akpintvl 值长,那么您具有以下选项:
    • 增加 AKPFREQ 参数的值,从而增加 akpintvl 的值,前提是该值不会导致大得不可接受的耦合设施结构大小。
    • 更改应用程序逻辑,从而产生更频繁的同步点。
    • 根据较短的事务持续时间计算结构大小,并允许在使用长期运行的事务时进行 DASD 卸载。
  • writespersec = lesser of 25 or ((N1 * R1) + ... (Nn * Rn)),其中:
    • N1, N2 .... Nn 是运行频率最高的事务的事务频率 (每秒事务数)。
    • R1, R2 .... Rn 是每个事务写入的日志记录数。
要计算主系统日志 DFHLOG 的 AVGBUFSIZE 值,可以使用系统中运行最频繁的事务所记录数据进行加权平均:
AVGBUFSIZE = (bytespersec / writespersec) + 48
其中:
  • bytespersec = (N1 * D1) + (N2 * D2) + ... (Nn * Dn)
    • N1, N2 .... Nn 是运行频率最高的事务的事务频率 (每秒事务数)。
    • D1, D2 .... Dn 是每个事务记录的数据的字节数。
      您可以计算写到每个事务的系统日志的数据量 (Dn):
      Dn = Ns * syncreclen +
           Nfc * (fcrechdr + fcreclen) +
           Nts * (tsrechdr + tsreclen) +
           Ntd * (tdrechdr + tdreclen) +
           Nur * (urrechdr + urreclen)
      其中:
      • Ns 是每个事务的同步点数量;通常为 1。
      • synreclen 是同步点记录的长度。
      • Nfc, fcrechdr, fcreclen 分别是可恢复更新的数量,记录头的长度以及用于文件控制的记录的长度。

        只计算 READ UPDATE 和 WRITE ADD 记录。 fcrechdr 是 144(记录头 136 字节加上文件名 8 字节)。

      • Nts, tsrechdr, tsreclen 用于可恢复的临时存储器更新。

        只对 TS PUT 和 TS UPDATE 记录计数。 对于 TS PUT 记录,tsrechdr 是 108,tsreclen 是 88。 对于 TS UPDATE 记录,tsrechdr 是 108,tsreclen 是 52。

      • Ntd, tdtrechdr, tdreclen 用于可恢复的瞬时数据更新。

        tdrechdr 是 108,tdreclen 是 380。

      • Nur, urrechdr, urreclen 用于写入 DFHLOG 的用户记录。

        urrechdr 是 125。

  • 有关如何计算 writespersec的详细信息,请参阅 每秒写入数计算
如果计算结果表明,AVGBUFSIZE 的值大于为 MAXBUFSIZE 定义的值,那么将采用为 MAXBUFSIZE 定义的值作为 AVGBUFSIZE 的值,并按以下公式计算 writespersec
writespersec = bytespersec / (MAXBUFSIZE - 48)

将 INITSIZE 公式的最终结果舍入到下一个 256 的倍数。

针对 DFHLOG 计算 SIZE

要计算在 CFRM 策略中针对主系统日志使用的 SIZE 值,请使用以下公式:
SIZE = 480 + ( LOGSNUM * A * B / 1024)
其中:
  • A = 2500 + (number_of_entries + 5)
  • B = (AVGBUFSIZE * 1.6821) + 289

要计算 number_of_entries的值,请参阅 条目数计算

将 SIZE 公式的最终结果舍入到下一个 256 的倍 数。 SIZE 的公式给出了一个比 INITSIZE 值大约大百分之五十的结果。

针对 DFHLOG 计算 LOWOFFLOAD

可以使用以下某一公式计算适合 DFHLOG 的 LOWOFFLOAD 值:
  • LOWOFFLOAD = (trandur * 90) / (akpintvl + trandur) + 10 (where RETPD=0 specified)
  • LOWOFFLOAD = (trandur * 90) / (akpintvl + trandur)(where RETPD=dddd specified)
其中:
  • akpintvl 是活动关键点之间的时间间隔。 请参阅 活动关键点区间计算 (activity key point interval 计算)
  • trandur 是在正常工作负载执行期间执行的长期运行事务的执行时间(同步点之间)。
    如果这段持续时间比 akpintvl 值长,那么您具有以下选项:
    • 增加 AKPFREQ 参数的值,从而增加 akpintvl 的值,前提是该值不会导致大得不可接受的耦合设施结构大小。
    • 更改应用程序逻辑,从而产生更频繁的同步点。
    • 根据较短的事务持续时间计算结构大小,并允许在使用长期运行的事务时进行 DASD 卸载。

有关日志流的低卸载阈值的描述,请参阅 日志流定义上的 LOWOFFLOAD 和 HIGHOFFLOAD 参数

针对 DFHSHUNT 计算 INITSIZE 和 SIZE

通常,辅助系统日志流的大小远远小于主日志流的大小。 要计算 DFHSHUNT 的耦合设施空间,请使用以下公式:
  • INITSIZE = (150 * LOGSNUM) + 310
  • SIZE = (230 * LOGSNUM) + 480
其中 LOGSNUM 是可将数据写入辅助日志流的日志流的数量。