Skip to content

当前正式验收 · 2026-10-19:读取率Lab15新五轮5/5及最终分离审核限定E4通过,600新值/600完整槽/600普通窗、严重及来源违规0;整体29/66。写入率未验收,物理精度和私有producer等价未证明。正式结果。

当前写入正式结论 · 2026-10-19:写入率Lab16新独占5/5及最终分离审核限定E4通过,600新值/600槽/586普通、13未评估及1普通偏离保留、严重及来源违规0;整体30/66、剩36。历史已验不重测;当前收尾提交/文档/站点,网站/通知/镜像欠项按Owner授权保留partial。下一仅整机网络发送率,尚未开始;不证明物理精度或私有producer等价。正式结果。下方日期段和旧数字为历史。

Disk Read/Write Rate(磁盘读写速率) ​

当前共享采集源(2026-10-07 G84):产品 SysmontapRawAdapter._make_stream 先用同一个 pymobiledevice3 原生 DeviceInfo 查询时钟与支持列,再用原生 Sysmontap 构造器建立完整14消费者固定依赖闭包(11进程列、3系统列);默认 intervalMs=500、ur=500 ms、sampleInterval=500000000 ns,保留CPU元数据与原生时钟。必需列缺失、非法类型或重复时明确失败,不以减少指标、补值或旧值续点降级。此为采集配置修复,不改变本页数值公式、scope、单位、质量/候选标签与独立误差门;完整54项与正式五轮仍待验,源码/安装验证不等于本指标数值校准。方案与验证。

作用域属性:[进程级 · 目标专属](Process Scope )

1. 定义与业务价值 ​

Disk Read/Write Rate 由目标进程的累计读/写字节 counter 做相邻样本差分得到,描述进程级磁盘/文件 I/O 字节速率。它可用于观察本地文件加载、缓存读取、高频日志写入等 I/O 密集行为,但不等价于 NAND 闪存的物理读写带宽,也不是“瞬时硬件吞吐”。

2. metricID / scope / unit / source ​

指标metricIDscopeunitsourcesourceKeydefinitionVersion
Disk Readios.process.disk.read_rateprocessbytes-per-seconddvt.sysmontapdiskBytesReadcounter-rate.source-clock.exact-counter.candidate.v3
Disk Writeios.process.disk.write_rateprocessbytes-per-seconddvt.sysmontapdiskBytesWrittencounter-rate.source-clock.exact-counter.candidate.v3

取自当前 Registry 。

3. iOS 系统原理 ​

sysmontap 暴露进程级 diskBytesRead / diskBytesWritten 累计字段,Perfowl 对相邻样本做差分得到速率。source epoch / reconnect 变化时重建的是 Perfowl 的差分基线,不应把它描述为底层硬件计数器在该时刻重新开始。

4. 系统服务 / 通信通道 / 采集命令与实现 ​

通道:com.apple.instruments.server.services.sysmontap(DTX )。采集:pymobiledevice3 原生 Sysmontap(provider, process_attributes, system_attributes, interval_ms=intervalMs) 返回累加字段 diskBytesRead/diskBytesWritten;速率推导实现于 MacApp/Sidecar/perfowl_collector_core/metric_engine.py::MetricEngine._counter_rate,与 Context Switch Rate / Interrupt Wakeup Rate 共用同一套差分与身份键逻辑(CPU 领域),仅 sourceKey 不同——这是 sysmontap 单一采样窗口内同时承载 CPU、线程、调度与磁盘多类事实的体现。

5. 原始字段与字段语义 ​

Processes[targetPID].diskBytesRead / .diskBytesWritten:自进程启动(或当前 source epoch/reconnect 起点)以来的累加读/写字节数。

6. 精确公式 ​

text
identity = (target_pid, target_generation, source_epoch, reconnect_generation, adapter_id, key)
rate = (current_bytes - previous_bytes) / elapsed_seconds

状态机(warmup / counter-reset / invalid-window / candidate / missing)与 CPU 领域的 Context Switch Rate 完全一致。

2026-10-03 R5算式补充:clock_ns=floor(EndMachAbsTime*numer/denom),rate=counter差分/设备clock_ns差分秒数。SysmontapRawAdapter在同一DVT provider准备时仅查询一次 DeviceInfo.mach_time_info() / machTimeInfo,保存原始返回值 [absoluteTicks,numer,denom,...] 于Raw的sysmontapMachTimeInfo(numer/denom取索引1/2,非硬编码);查询超时≤3 s。显式坏钟/缺钟为null/missing -clock,历史完全缺新增字段才走candidate-host-window。clock模式/比例纳入差分身份键,切换warmup ;负哨兵source-sentinel;计数下降counter-reset;重复/倒退时钟invalid-window且不污染前进基线。合法0要求计数相同且有效正时差。不从来源差分推断物理硬件带宽。R5修复记录。

7. Clock / Window / Freshness ​

Clock domain:设备 Mach absolute ticks,经同一设备的实测timebase转换为纳秒。窗口:相邻设备采样端点,而非排队后的宿主到达间隔。

8. Baseline / Reset / Discontinuity ​

首次观测 warmup;计数倒退(如目标进程重启)counter-reset。

9. Quality:valid / candidate / missing ​

字段缺失或无目标 PID → missing;否则按状态机判定,缺失不补 0。

10. 合法 0 的条件 ​

速率可以合法为 0(该窗口内确实没有发生磁盘读/写),需与 missing/warmup/counter-reset 区分。

11. 当前证据、校准与平台覆盖 ​

2026-10-19当前:读取率Lab15与写入率Lab16分别完成独立新5/5、逐轮三复核和最终分离审核,均为限定E4 candidate异常/来源一次/连续性通过,整体30/66;独立物理精度、私有producer等价及跨设备覆盖仍未证明。读取率 · 写入率。

2026-09-18历史快照:依附于 CPU/系统工况联合采集会话获得真机数据,尚无以本指标为核心的独立 E4 专项批次;证据等级 E2/E4 混合。

12. 如何分析:能得到什么结论,不能得到什么结论 ​

能得到:目标 App 磁盘 I/O 带宽趋势与同版本回归比较;与 FrameTime 尖峰同窗出现时,可作为"主线程同步 I/O"的候选方向之一(结合 APP CPU 不高的组合更值得关注)。

不能得到:不能仅凭"Disk Read 尖峰 + 同窗卡顿"直接确诊为"I/O 发生在主线程"——需要结合调用栈或 Instruments 证据;不能仅凭速率高低判断是否为合理的异步后台 I/O。

13. 常见误区 ​

  • 把磁盘 I/O 与卡顿的同窗相关性当作因果确诊;
  • 把速率高本身当作缺陷——异步后台 I/O 速率高也可能是合理设计。

14. Legacy / 历史实现 ​

counter-rate.source-clock.exact-counter.candidate.v3 是当前版本;counter-rate.source-clock.candidate.v2 仅为历史版本;旧 counter-rate.v1 使用宿主到达时差,旧Session不回写;本页历史上曾与 Thread/CSwitch/Wakeup 合并在 system-condition-metrics.md("线程、调度与磁盘 I/O 指标"),2026-09-18 起随 CPU 与 Network & I/O 两个领域的重排完整迁出为独立 Canonical。

15. 版本历史与来源批次 ​

本页由 site/knowledge/metrics/system-condition-metrics.md 拆分而来,历史沿革见该文件保留的版本历史表。

版本日期修订要点
v1(本页)2026-09-18从 system-condition-metrics.md 完整迁出,成为 Network & I/O 领域下的 Disk I/O 独立 Canonical。

| counter-rate.source-clock.candidate.v2 | 2026-10-03 | R5:设备源钟消除宿主队列压缩对速率分母的放大;旧host fallback显式标记,当前真机与校准边界参见R5。 |

2026-10-05 G11 精确累计数与质量边界 ​

当前算法 counter-rate.source-clock.exact-counter.candidate.v3:原生UInt64累计值保存为精确整数,先相减,再把安全delta除以真实来源窗口秒数;不先转Double累计值。2^53以上累计值仍可有精确的小增量;计数下降先判counter-reset/置空。delta大于2^53−1时precision-loss/置空并以当前有效累计值更新下一基线。浮点来源仅有限非负、整数形态且≤2^53−1接受并转为等值int,非整数float为invalid-counter;较大浮点的低位未被取证,不恢复成整数;超UInt64整数precision-loss,负哨兵source-sentinel,bool/非数字/NaN/Inf缺值。真0仅在有效正窗口且真实累计值未变时成立。

Checkpoint保留JSON整数,不把大整数转Double;对不精确浮点/负/超界基线拒绝恢复,旧formulaContract不匹配则重建,不回写旧Session或补造缺窗。作用域、单位、设备Mach/历史host候选时钟及身份/重连规则未变。这是算术可信边界修复;独立E4误差与五轮100%仍待验证,未证为此前断续的根因。

版本日期变更与证据
exact-counter.candidate.v32026-10-05精确整数差分/重置与checkpoint,来源 G10/G11合同及结果,E2匹配验证;不升级独立校准支持

采集源版本更新 · 2026-10-07 ​

G84将SDK全列factory改为固定共享11+3列、输出与采样节拍一致;原生服务/DTX通道不变,支持列仍由SDK查询,传输及指标转换为Perfowl适配层,SDK来源和自研计算分开。初missing、counter warmup/reset、VM近似质量等原边界保留,不外推其他设备/场景持续100%。来源批次。

2026-10-19 · 读取率进入独立准备 ​

Registry当前为精确整数差分v3,本次纠正顶部表格滞后标注,公式与历史结果不变。Owner允许保留前项发布/通知欠项继续;仅读取率开始独立来源一次发表与自有Lab参考准备,正式0/5、整体28/66,写入率未验。旧采集版本段落保留为历史,常规新指标默认1Hz真实新值。

读取负载的pread返回字节、self proc_pid_rusage累计diskio_bytesread和Sysmontap累计字段必须分开记录。缓存命中可使实际读取返回字节与系统磁盘统计不同;F_NOCACHE调用成功也不能证明物理缓存全部绕过。API成功的0不自动证明统计可用;诊断必须看到正参考增量。公开XNU的实现不证明手机版本或私有producer等价。此为E1机制审查,尚无本项新E4通过。当前方案与官方来源。

版本日期变更与证据
文档v22026-10-19纠正Registry表v3;记录缓存/实际工作量/系统累计的边界,E1;读取率专项准备0/5

2026-10-19 · 工具资格中的工作量与系统计数(E4准备) ​

自有Lab短阶梯确实完成6,553,600B的pread返回,但同生命self proc_pid_rusage累计只增401,408B;另两短run有实际读取而累计增0。此为本机本场景已观察事实,不能据此断言缓存是唯一原因,也不能证明Sysmontap私有producer等价。判断时同时核封口工作量账本、独立文件SHA及API status/ABI/生命字段;避免把目标读取速率或返回字节填入系统指标。0保留为原始合法读数,但全0不能充正参考覆盖。四工具资格通过不代表指标五轮通过;当前0/5、整体28/66。

100Hz为目标参考节拍,实际观察器OFF/ON中最大native gap50.059ms;完整read/encode/append均值/P95虽≤1ms,仍不能推定每个参考窗口密集。比较必须逐窗核端点及内部gap≤30ms;越界记unassessed、固定分母保持,不能以软件成本门替代采集覆盖门。方案、实际结果及边界。

版本日期变更与证据
文档v32026-10-19沉淀本机E4工具观察的工作量/系统累计分离及目标节拍/真实gap边界,未验收磁盘指标

2026-10-19 · 成本达门但比较覆盖失败(E4诊断) ​

固定140秒配对诊断出现120个真实来源/120槽,但普通仅1、未评估119;其中89个参考内部gap、30个端点距离超30ms。参考成本mean/P95虽为0.266637/0.439625ms,native间隔P95仍41.157250ms、最大50.095292ms。因此应分别审核调用成本与真实时间轴密度:低成本不能证明调度及时,严重0也不能替代足够可比窗。按固定分母保留全部未评估点,不能放宽30ms或缩窗择样。三路原件/第二数学/实际消费者复核确认失败。

同一诊断实际pread返回1,236,795,392B,但self系统累计增量和产品正值均0。已验证事实仅限此设备与该次场景;待证假设包括utility相对等待合并和新文件写缓存影响,尚无唯一根因。下一自有Lab只试验绝对Mach等待及写入前禁缓存,重新核E4,不改变产品指标口径。读取率正式0/5、整体28/66;写入率未验。来源与修复方案。

版本日期变更与证据
文档v42026-10-19E4诊断失败:成本与真实gap分开审核、工作量不替代系统累计;三路复核确认,未验收指标

2026-10-19 · 自有Lab窄修复后的新诊断(E4准备) ​

只改变自有新文件写入前F_NOCACHE请求,以及磁盘独立userInitiated队列/Mach绝对等待,仍保留实际系统累计、pread账本和产品来源三份口径,固定30ms/非零/120机会门不改。host固定同规模前后对照的实际读取都为1,634,992,128B,self累计增量0→1,600,405,504B;这支持继续验证组合候选,尚不能证明单一根因或NAND物理计量。

手机新OFF/ON配对3600参考点,完整成本mean/P95/max=0.292891/0.374833/0.939083ms,最大native gap12.490667ms,CPU增1.379585个百分点。新完整140秒诊断及原件/第二数学/实际消费者三路复核得到120新值/120槽、119普通、1包络过宽未评估,90正参考/90产品正值、严重和来源违规0。判断方法仍逐窗核真实gap、counter与包络宽度,不能仅看等待策略字符串、工作量正值或API成功状态。

这些仅关闭该候选的准备门;原Lab14失败保留,正式仍0/5、整体28/66。当前开始新独占五轮,每轮前600秒冷却,首失败停,未证明多设备/物理精度或私有producer等价。诊断、修复与正式方案。

版本日期变更与证据
文档v52026-10-19自有Lab15组合修复后新E4诊断119/120及三复核通过准备门;正式五轮尚待,旧失败不覆盖

2026-10-19 · 读取率正式限定E4结论 ​

五不同生命和Session每轮120新值/120槽/120普通窗,无未评估、严重偏离或来源违规,每轮最大gap1秒。正参考/产品正值分别90/91/90/91/90,逐窗仍核30ms距离与内部gap、包络宽度及原始整数差分。全部实际消费者和最终160文件/186,140,615B原件副本SHA复核通过,读取率限定candidate异常/来源一次/连续性PASS,整体29/66。此结论不包含物理NAND精度、多设备范围、self与私有producer等价;共享本页的写入率未验收。

避免方式:实际工作量、系统累计与产品值分别保留,先新独占诊断/容量再五轮,成本与真实gap分别审查,旧失败不覆盖;取消/资源门先停不补样。适用本机自有Lab读场景;后续不同系统或负载仍按独立合同取证。准备、失败与组合修复假设继续留在上方日期段,不将后来成功改写成唯一根因证明。完整证据与范围。

版本日期变更与证据
文档v62026-10-19读取率新5/5及最终复核限定E4通过,29/66;写入未验,物理精度/等价未证明

写入率专项准备 · 2026-10-19 ​

当前仅写入率进入方案/软件准备,正式0/5、未验收,读取率已验结论保持。新增write独立来源一次发表合同:sysmontapDiskWriteRatePublicationPolicy=process-disk-write-source-once.1hz.v1,独立FIFO6、ready锚定1Hz、真实原生窗和TTL各1.5秒;精确累计差分公式v3不改。仅明确null/not-due略过图形计划外半秒点,真实missing/重复/大gap断线,原样本导出保留。实现及安装资格仍待,不能当已部署能力。

独立候选参考为自有App的proc_pid_rusage(getpid(),RUSAGE_INFO_V2).ri_diskio_byteswritten及Mach读取区间。必须核SDK ABI/状态/同生命/UInt64/单调时钟;API成功0不证明统计有效。32MiB自有文件、F_NOCACHE成功后的1/4/8MiB每秒有界pwrite为请求配方,实际返回、fsync状态/成本和最终文件SHA分别保留,不等于系统计数或物理写入。参考端点和内部gap≤30ms,包络宽/普通外扩max(256KiB/s,15%)、严重外扩max(512KiB/s,30%);固定120机会和非零门不缩分母。这里只能支持后续candidate异常、来源和连续性审核,不证明NAND精度或私有producer等价。完整方案与限制:写入率专项。

版本增量v7(2026-10-19):先入档写入率一次发表、self累计参考/实际工作量分离及固定验收门(E1);未增加29/66。

来源发表资格的基准陷阱 · 2026-10-19 ​

表现:只比较速率值可能在新来源政策未激活时仍通过,旧scalar兼容路径恰好给相同数字;这不能验证新FIFO、TTL或一次发表成本。本次write基准a02发现大小写政策键漏迁移后已排除。判断方法:基准逐次核明确marker、来源激活、acceptedAsNewForThisSnapshot及原始两端点;突发必须实际压到队列容量并记录discard,不能仅读capacity常量。适用于来源/发表状态机软件性能测试(E2),不等于真机指标可用。实施与失败记录。

写入账本的失败保留与计数分离 · 2026-10-19 ​

表现:最终close或后一次fsync成功可能掩盖较早同步失败;只看最后status会把失败工作量误当完整刺激。当前自有Lab分别记录syncCalls、syncFailures、首errno和最后status,失败累计不复位。判断方法是核全ledger单调性、失败数0、最终封口和独立文件SHA;故障注入验证早期fsync失败后成功仍保留失败。适用自有Lab写负载(E2);fsync成功不证明物理NAND落盘。

本机四新工具场景的实际pwrite返回与self系统累计仍分别保留:短正常写入返回2,097,152B、self增2,109,440B。该差异是本次E4准备观察,不能断言固定开销比例、私有producer等价或物理精度。正式比较依据系统累计的时间括区间,不能以目标工作量替代参考,也不能用工具资格数充正式五轮。写入正式0/5、整体29/66。实现、工具证据与限制。

版本增量v8(2026-10-19):E2失败账本保留规则和E4短工具工作量/系统计数边界;写入未验收,历史读取率结论不变。

写入率新诊断的覆盖边界 · 2026-10-19 ​

新完整诊断固定120机会得到115普通/5未评估:4窗参考包络过宽、1窗端点距离超30ms;严重偏离和来源违规0,正参考与产品正值各86窗。完整成本mean/P95≤1ms仍不保证每个参考端点及时,应按窗口保留unassessed并核固定覆盖门,不能以全局成本或严重0消除未评估。该次通过准备门≥114普通,正式五轮仍0/5、整体29/66,不能预告稳定性或指标通过。范围限定本机自有写负载,物理精度/私有producer等价仍未证明。实际诊断和三路审核。

版本增量v9(2026-10-19):E4诊断115/120及未评估原因边界,未新增验收指标。

绝对与相对阈值须同时读 · 2026-10-19 ​

普通/严重外扩分别采用max(256KiB/s,15%参考中点)与max(512KiB/s,30%参考中点),应使用实际字节每秒,不能只读百分比。写入率第4轮曾有产品约938,927B/s、参考约1,408,391B/s,差约469,464B/s:超过普通262,144门而未超严重524,288门,因此计普通偏离1,不能称相容,也不能仅因相对差约33%改判严重。判断时核精确包络、单位与两套max公式,保留偏离及其连续长度,最后再核固定120机会/普通数量/严重0的整轮门。

这是本机自有写负载的E4观察及第二数学/实际消费者复核事实,单点不证明唯一来源偏差原因、NAND精度或私有producer等价。当前正式4/5、未验收,不因单轮达门提前增加完成数。来源与原门。

版本增量v9.1(2026-10-19):保留普通偏离并解释绝对/相对阈值共同生效,非新指标验收。

2026-10-19 · 写入率独立五轮的限定E4结论 ​

Lab16五新生命/Session固定合计600新值/600槽/586普通,13未评估及1普通偏离完整保留,严重含尾段和来源违规0,每轮gap1秒,正参考/产品正值门成立。原件/第二数学/实际44Core三路及最终160件/188,530,261B当前SHA核同。只支持本机自有140秒1/4/8MiB每秒写场景的candidate异常、来源一次发表和连续性,不证明NAND精度、私有producer等价或不同设备范围。

方法与避免:先核API状态/ABI/生命和原始累计,再按设备时间括参考端点;工作返回量、fsync与系统计数分列。逐窗核30ms与包络宽,未评估不删、固定分母不缩;完整成本mean/P95≤1ms也不能替代端点覆盖门。每项用新独占诊断、真实容量和完整五轮,读取率通过不能替写入率,后续指标同样独立。完整结果与范围。

版本日期变更与证据
文档v102026-10-19写入率新5/5及最终分离复核限定E4通过,30/66;保留未评估和物理/等价范围限制

Perfowl · Performance Observer