主临时存储器:监视和调优

您可以监视和控制临时存储器队列所使用的 CICS® 区域中的存储量。

关于此任务

z/OS® 的 CICS TS,版本 5.1开始,主临时存储器位于 64 位存储器中,因此可用空间大于先前 CICS 发行版中的可用空间。 主临时存储器不需要 VSAM I/O 活动或与临时存储器服务器通信。 但是,主临时存储器中的临时存储器队列不可恢复。

CICS 临时存储器统计信息显示有关使用主临时存储器的信息。 您还可以使用 CICSPlex ® SM 或 CICS 命令来查看正在使用的主临时存储器的数量以及当前限制。 当最大允许存储量的 75% 或更多正在使用时, CICS 会发出有关此情况的消息。

使用 TSMAINLIMIT 系统初始化参数来指定 CICS 区域中可供临时存储器队列使用的存储量。 您可以指定 1-32768 MB (32 GB) 范围内的存储量。

但是,您还必须检查 z/OS 参数 MEMLIMIT的设置。

过程

  1. 在临时存储器模型中指定到期时间间隔。 指定到期时间间隔时,如果应用程序未删除与模型匹配的临时存储器队列,那么 CICS 可以自动删除这些队列。
    有关到期时间间隔的更多信息,请参阅 自动删除临时存储器队列
  2. 使用 CICSPlex SM , CICS 命令或 CICS 统计信息来监视正在使用的主临时存储器量。
    • CICS 临时存储器全局和摘要统计信息显示主临时存储器使用达到 TSMAINLIMIT设置的限制的次数,以及用于主临时存储器中数据的虚拟存储器的峰值数量。
    • TEMPSTORAGE 资源显示与允许的最大限制相比正在使用的存储器。
  3. 查找来自 CICS 的有关主临时存储器使用率高的消息。
    • 当允许的最大存储空间的 75% 或更多正在使用时, CICS 会发出消息 DFHTS1601 。
    • 如果应用程序尝试写入使正在使用的主临时存储器超过允许的最大限制 ( TSMAINLIMIT 值) 的数据项,那么 CICS 会发出消息 DFHTS1602 。 在此情况下,在空间可用之前,应用程序无法写入主临时存储器中的临时存储器队列。
    如果发出了其中任一消息,请尝试删除旧的临时存储器队列或增加 TSMAINLIMIT 设置,如以下步骤中所述。 当使用率低于允许的最大使用率的 70% 时, CICS 会发出消息 DFHTS1604 。
  4. 在更改 TSMAINLIMIT 设置之前,请检查 z/OS 参数 MEMLIMIT的当前设置。
    可用于临时存储器队列的存储量不得超过 MEMLIMIT 值的 25%。 有关 CICS 的 MEMLIMIT 值的信息以及有关检查当前适用于 CICS 区域的 MEMLIMIT 值的指示信息,请参阅 估算,检查和设置 MEMLIMIT
  5. 可选: 要更改可用于临时存储器队列的存储量,请更改 TSMAINLIMIT 设置。
    您可以在正在运行的 CICS 系统中更改 TSMAINLIMIT 设置。 请使用本主题末尾的链接以获取详细指示信息。
    • 如果增大 TSMAINLIMIT 设置,并且新值大于 MEMLIMIT值的 25% ,那么 TSMAINLIMIT 将保持不变,并发出消息 DFHTS1607 。
    • 如果减少 TSMAINLIMIT 设置,那么 CICS 会尝试将允许的存储器中至少 25% 的可用空间保持在当前利用率之上,以便临时存储器写请求不会太快达到 TSMAINLIMIT 值。 值设置如下:
      • 如果当前可用空间少于 25% ,那么 TSMAINLIMIT 保持不变。 发出了消息 DFHTS1606 。
      • 如果新限制的至少 25% 将是可用空间,那么设置将减小为您选择的值。
      • 如果小于 25% 的新限制将是可用空间,那么将设置为当前利用率加上该利用率的 33%。

    如果更改了 TSMAINLIMIT 的值,那么 CICS 将发出消息 DFHTS1603,这将显示新设置。

结果

下表显示了主存储器的成本。 在此示例中, n 表示删除前队列中的项数。
表 1. 主存储器的成本
writeq REWRITE readq 删除标准队列
1.0 0.8 0.8 0.71 + 0.23 x n