本指南介绍了如何在 Mainframe Connector 中启用和收集性能计数器轨迹。
概览
在 Mainframe Connector 操作(例如数据集转码、Cloud Storage 上传和 BigQuery 数据加载)期间,性能计数器会捕获高分辨率的执行指标和线程级状态数据。您可以使用计数器轨迹来诊断性能瓶颈、内存或队列反压、线程阻塞、网络或 I/O 限制,以及大型机系统资源使用情况。
捕获的关键指标
性能计数器轨迹包含内部指标(例如以下指标)的高频样本:
- 工作器状态跟踪:在
active、queue_blocked、io_blocked、compressing和hashing状态下花费的时间。 - I/O 和吞吐量:读取和写入字节数、传输吞吐量以及块转码速率。
- 队列动态:执行流水线各阶段的缓冲区和工作器队列大小。
- 系统指标:与纳秒级精确时间戳相关联的低级别操作时间。
性能计数器轨迹仅收集执行元数据和计时统计信息。它们不会收集数据集内容、客户记录或个人身份信息 (PII)。
启用性能计数器
性能计数器默认处于停用状态。您可以在运行 Mainframe Connector 作业之前,将 MFC_PERF_FILE 环境变量设置为目标输出路径,以启用这些日志。
shell 环境
如需在 Linux 或 z/OS UNIX 系统服务中的 shell 环境中启用性能计数器,请在调用 Mainframe Connector 之前导出 MFC_PERF_FILE:
export MFC_PERF_FILE="/tmp/mfc_perf.perf"
copy binary file:/path/to/file gs://bucket/path/to/object
如需停用性能计数器收集,请取消设置环境变量:
unset MFC_PERF_FILE
大型主机 JCL 环境
如需为运行 Mainframe Connector 的 JCL 作业启用性能计数器,请在 Mainframe Connector 过程或作业的过程 PARM 中定义 MFC_PERF_FILE。
如果您提供自己的 PARM,请务必保留默认的 PARM (/I+ com.google.bqsh.Bqsh)。
以下示例展示了如何为 JCL 作业启用性能计数器:
//STEP01 EXEC BQSH,PARMDD=MFCPERF
//INFILE DD DSN=HLQ.DATA.FILENAME,DISP=SHR
//COPYBOOK DD DSN=HLQ.COPYBOOK.FILENAME,DISP=SHR
//MFCPERF DD *
ENVAR("MFC_PERF_FILE=/tmp/mfc_perf.perf")/I+
com.google.bqsh.Bqsh
/*
//STDIN DD *
BUCKET=my-target-bucket-1234
gsutil cp --replace gs://$BUCKET/tablename.orc
/*
配置性能计数器
您可以使用以下环境变量配置性能计数器日志的采样频率和最大文件大小:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
MFC_PERF_FILE |
将写入性能计数器指标的路径。 如果未设置或为空,则停用性能计数器收集。 | 已停用 |
MFC_PREF_COLLECTION_INTERVAL_MS |
采样频率(以毫秒为单位)。指定指标刷新到输出文件的频率。 | 100(0.1 秒) |
MFC_MAX_PERF_MAX_FILE_SIZE_BYTES |
输出文件的大小上限(以字节为单位)。达到该值后,系统会自动停止写入,以防止磁盘存储空间被填满。 | 67108864 (64 MiB) |
将计数器文件发送给 Google 支持团队进行分析
性能计数器功能生成的输出文件(例如 /tmp/mfc_performance.perf)的格式为二进制数据集,其中包含结构化指标架构和衡量记录。它不是人类可读的纯文本,无法使用标准日志查看器直接评估。
输出文件需要使用 Google 内部分析工具和专门的指标可视化工具来解码状态转换和队列深度图。如需分析效果数据,请将生成的文件提交给Google Cloud 支持团队或您的技术支持客户经理。
如果您要针对性能问题、转码吞吐量低或作业时长异常创建支持请求,请按以下步骤操作:
- 将
MFC_PERF_FILE设置为有效路径(例如/tmp/mfc_perf.perf)。 - 通过在性能监控下运行作业执行来重现问题。
- 从指定路径检索生成的
.perf文件。 - 将
.perf文件连同作业日志一起附加到您的Google Cloud 支持服务工单中,以便 Google 工程师进行评估。