- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下公式计算数据集所需的空间,但是当我将它与系统中的现有数据集进行交叉检查时,我在某处出错了。请帮助我
第一个数据集:记录格式。 . . : 语言
记录长度。 . . : 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 设备及其几何结构的一些几何结构。
您假设每个轨道两个 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/
我在 PyQt5 代码中遇到错误。谁能帮我。 import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import
我想编写一些 JCL 来创建一个数据集,其要求是: 如果数据集不存在,则创建它 或者: 如果数据集已经存在,覆盖它 或 如果数据集已经存在,什么也不做 据我所知,(1) 可以通过 DISP=NEW 来
我正在使用下面的 jcl 代码创建 pds,但出现错误 000001 //HERC01A JOB (COBOL),
问题 我的 COBOL 编译器中的链接编辑步骤到底是做什么的? 编译代码后,执行链接编辑步骤。我不确定这一步是做什么的。 背景资料 刚从学校毕业(3 年前),我就找到了一份大型机应用程序开发人员的工作
似乎老铁是坚如磐石的软件。这是为什么?是不是因为软件太成熟了,所有的bug都解决了?还是因为人们已经习惯了这些错误,以至于他们甚至不认识它们并解决它们?软件规范是否从第一天开始就完美,一旦软件编写完成
在我的站点上,一种实践是当一个批处理周期开始时,我们在运行任何程序之前分配所有将在整个运行中使用的所有GDG的新一代。 这意味着我们现在遇到的情况是,甚至在我们的流程开始之前就分配了500多个文件。我
我们可以在Mainframe中用另一个字符串替换部分数据吗?例如假设我有一个长度为 80 的 PS。从第 72 栏到第 80 栏存在一些行号。我想通过特定的字符串(例如 TEST)更改这些行号。我们可
我尝试提交作业,当我进行硬编码时,一切都很好。但我想使用参数。 //REPORTS EXEC PGM=IKJEFT01,**PARM='SDSFINFO FTPSRV01 * hiqual'**
我正在尝试使用以下公式计算数据集所需的空间,但是当我将它与系统中的现有数据集进行交叉检查时,我在某处出错了。请帮助我 第一个数据集:记录格式。 . . : 语言 记录长度。 . . : 445 blo
我尝试提交作业,当我进行硬编码时,一切都很好。但我想使用参数。 //REPORTS EXEC PGM=IKJEFT01,**PARM='SDSFINFO FTPSRV01 * hiqual'**
我正在尝试使用以下公式计算数据集所需的空间,但是当我将它与系统中的现有数据集进行交叉检查时,我在某处出错了。请帮助我 第一个数据集:记录格式。 . . : 语言 记录长度。 . . : 445 blo
在执行一个 Proc 时,我收到“GDG Roll In Error”。错误消息显示 'IGD07001I GDG ROLL IN ERROR -RETURN CODE 20 REASON CODE
我有以下 PL/I 代码: declare 1 u union, 2 c character(1), 2 ci fixed binary(4) unsigned;
我正在尝试使用 DFSORT 实用程序对文件进行排序,JCL 使用代码 maxcc=00 成功运行,但我得到的输出文件是空的,请帮助我, 我的输入文件 02AAP0000007010500001901
有人问我这个问题,但我无法就这是否正确达成一致。 如果说 JES 不启动启动器而工作负载管理器启动,这是否属实? 我认为从 JES 接收作业的不活跃启动器是 JES 启动的启动器,这是正确的吗? 我很
在执行一个 Proc 时,我收到“GDG Roll In Error”。错误消息显示 'IGD07001I GDG ROLL IN ERROR -RETURN CODE 20 REASON CODE
我有以下 PL/I 代码: declare 1 u union, 2 c character(1), 2 ci fixed binary(4) unsigned;
我正在尝试使用 DFSORT 实用程序对文件进行排序,JCL 使用代码 maxcc=00 成功运行,但我得到的输出文件是空的,请帮助我, 我的输入文件 02AAP0000007010500001901
//STE1 IF RC EQ 1 THEN .... //结束 返回代码给我 FLUSH 并且所有其他作业都因此没有执行谁可以帮我这个事。是因为我没有给ELSE吗? 最佳答案 如果您有运行步骤的条件
我正在尝试以这种方式创建和删除数据集名称中带有 JCL 符号的数据集: // SET DATE=20110809 //* DELETE DATASET //DEL01 EXEC PGM=IDCA
我是一名优秀的程序员,十分优秀!