gpt4 book ai didi

mainframe - 如何计算记录数的空间

转载 作者:行者123 更新时间:2023-12-01 23:34:23 26 4
gpt4 key购买 nike

我正在尝试使用以下公式计算数据集所需的空间,但是当我将它与系统中的现有数据集进行交叉检查时,我在某处出错了。请帮助我

第一个数据集:记录格式。 . . : 语言
记录长度。 . . : 445
block 大小。 . . . : 32760记录数......:51560

Using below formula to calculate
optimal block length (OBL) = 32760/record length = 32760/449 = 73
As there are two blocks on the track, hence (TOBL) = 2 * OBL = 73*2 = 146

Find number of physical records (PR) = Number of records/TOBL = 51560/146 = 354

Number of tracks = PR/2 = 354/2 = 177

But I can below in the dataset information

Current Allocation
Allocated tracks . : 100
Allocated extents . : 1

Current Utilization
Used tracks . . . . : 100
Used extents . . . : 1

第二个数据集:记录格式。 . . : 语言
记录长度。 . . : 445
block 大小。 . . . : 27998
记录数......:127,252

Using below formula to calculate
optimal block length (OBL) = 27998/record length = 27998/449 = 63
As there are two blocks on the track, hence (TOBL) = 2 * OBL = 63*2 = 126

Find number of physical records (PR) = Number of records/TOBL = 127252/126 = 1010

Number of tracks = PR/2 = 1010/2 = 505

Number of Cylinders = 505/15 = 34

But I can below in the dataset information

Current Allocation
Allocated cylinders : 69
Allocated extents . : 1

Current Utilization
Used cylinders . . : 69
Used extents . . . : 1

最佳答案

对您的方法的一些观察。

首先,由于您处理的记录是可变长度的,因此了解“平均”记录长度会很有帮助,因为这有助于制定更准确的存储预测。您的方法假设所有记录都达到最大值的最坏情况,这对于规划目的来说很好,但实际上,如果记录长度的平均值低于最大值,您可能会看到实际分配会更低。

您采用的方法是合理的,但考虑到您可以将 block 、记录、DASD 几何中的空间要求告知 z/OS,或者让 DFSMS 代表您执行计算。引用这个article获取有关选项的一些其他信息。

回到你的计算:

您的最佳 block 长度(OBL)实际上是每个 block 的记录数(RPB)。 block 大小除以最大记录长度得出可以存储在 block 中的全长记录数。如果您的平均记录长度更短,那么您可以在每个 block 中存储更多记录。

每个磁道两个 block 的假设可能适用于您的情况,但这取决于将用于基础分配的实际设备类型。这是一个 link支持的 DASD 设备及其几何结构的一些几何结构。

enter image description here

您假设每个轨道两个 block 取决于设备对于 3390 是不正确的,因为您需要 64k 用于轨道上的两个 block ,但您可以看到 3390 的最大输出为 56k,因此每个轨道只能获得一个 block 在设备上。

此外,看起来您确实通过添加 4 个字节将 RDW 考虑在内,但是如果他们不熟悉 z/OS 上的 V 记录,看问题的人可能会感到困惑。在您的计算中,这将是 61每个 block 记录 27998(这是“最佳 block 长度”,因此两个 block 可以舒适地放在一条轨道上)。

我将使用以下值:

  • 对于 RDW,MaximumRecordLength = RecordLength + 4

  • TotalRecords = 最大长度的总记录数(最坏情况)

  • BlockSize = 建模块大小

  • RecordsPerBlock = 一个 block 中可以容纳的记录数(最坏情况)

  • BlocksNeeded = 包含估计记录所需的 block 数(最坏情况)

  • BlocksPerTrack = 来自 IBM 设备几何信息

  • TracksNeeded = TotalRecords/RecordsPerBlock/BlocksPerTrack圆柱体 = 每个圆柱体的设备轨道(大多数设备为 15 个)

Example 1:

Total Records = 51,560
BlockSize = 32,760
BlocksPerTrack = 1 (from device table)
RecordsPerBlock: 32,760 / 449 = 72.96 (72)
Total Blocks = 51,560 / 72 = 716.11 (717)
Total Tracks = 717 * 1 = 717
Cylinders = 717 / 15 = 47.8 (48)

Example 2:

Total Records = 127,252
BlockSize = 27,998
BlocksPerTrack = 2 (from device table)
RecordsPerBlock: 27,998 / 449 = 62.35 (62)
Total Blocks = 127,252 / 62 = 2052.45 (2,053)
Total Tracks = 2,053 / 2 = 1,026.5 (1,027)
Cylinders = 1027 / 15 = 68.5 (69)

现在,关于实际分配。这取决于你如何分配空间,记录的大小。假设它在 JCL 中,您可以使用 SPACE=RLSE 子参数在创建和关闭时释放空间。这应该释放未使用的资源。

鉴于记录是可变的,估计是最坏的情况,您需要了解更多关于平均记录长度的信息,以了解根据实际使用的空间进行的实际分配。

最后的想法是,您正在做的所有工作都可以被您的存储管理员通过 ACS 例程覆盖。我相信今天的大多数人会指定一个 BLKSIZE=0 并让 DFSMS 完成所有艰苦的工作,因为该组件有更多关于文件去向、底层设备是什么以及最高效的信息做分配的方式。磁盘几何和分配的日子更像是一个篝火晚会的故事,除非你的环境没有被管理来为你做这些事情。

关于mainframe - 如何计算记录数的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65794547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com