jianyintang/find-disk-killer

GitHub: jianyintang/find-disk-killer

一款 macOS 原生磁盘与系统活动监控工具,帮助用户以应用为中心追踪磁盘 I/O、CPU、网络和文件访问,并查看硬盘健康状态。

Stars: 2 | Forks: 0

FindDiskKiller app icon

FindDiskKiller

See what keeps using your disk.

A native macOS workspace for application disk I/O, CPU, network, file activity, and drive-health evidence.

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский

macOS 14+ · Apple silicon & Intel · Local processing · 10 interface languages

Download · Website · Product model · Support · Privacy

FindDiskKiller Now workspace showing sustained disk activity, resource trends, and the leading apps.

Find sustained disk activity and identify the apps behind it.

FindDiskKiller 是为这样的时刻而生的:当你的 Mac 开始发热,磁盘忙得不可开交, 而仅凭进程列表却无法解释原因。它让调查始终以应用为中心:识别持续的活动, 检查相关的应用程序,然后深入查看其 CPU、磁盘、网络、文件和存储上下文, 而无需在多个工具之间拼凑完整的情况。 ## 你能看到什么 | 工作区 | 它能为你提供什么 | | --- | --- | | **应用程序** | 五秒内的 CPU、读取、写入、下载和上传;支持排序和可调整大小的实时列;原生应用图标 | | **时间线** | 直观的十分钟、15分钟和一小时历史直线图,支持悬停查看精确数值 | | **进程详情** | 独立的窗口,用于比对应用程序的 CPU、磁盘、网络和文件证据 | | **文件活动** | 当前打开的位置以及过去五分钟内被更改的目录 | | **文件访问追踪** | 按需请求的读/写总量、五秒速率、会话峰值、活动文件以及经过验证的进程会话 | | **磁盘** | 将熟悉的已挂载卷名称映射到物理设备吞吐量,包括外部存储 | | **硬盘健康** | 原生的 NVMe/SMART 证据,例如温度、主机写入次数、磨损程度、剩余空间、通电历史,以及 macOS 公开报告的错误信息 | | **菜单栏** | 一种安静、轻巧的当前活动视图,没有通知噪音 | ## 可视化的完整调查 ### 从相关的应用程序开始 CPU、磁盘 I/O、下载和上传保持独立,这样一个繁忙的资源就不会掩盖另一个。 当前数值使用最新的五秒数据,并且每个应用都可以在独立的详情窗口中打开。

Codex app detail showing CPU, disk I/O, and network timelines.

### 从位置深入到有边界的文件证据 查看应用当前打开的位置以及过去五分钟内更改的目录。 当这些上下文不够时,明确启动一个有时间限制的文件或文件夹追踪, 检查请求的读取、写入、活动文件以及经过验证的进程会话。

Codex File Activity view showing related locations, writable folders, and recent changes.

Bounded folder trace showing requested read and write rates, active files, and accessing processes.

### 以存储上下文收尾 将熟悉的已挂载卷名称映射到物理设备吞吐量,然后检查 macOS 和硬盘实际公开的 SMART 或 NVMe 健康证据。

Disks workspace showing physical-device throughput, mounted volumes, and hardware diagnostics.

Disk Health view showing SMART status, wear, temperature, host writes, power history, and media errors.

## 没有虚假精度的测量 FindDiskKiller 将 macOS 的证据来源保持独立: - **应用程序磁盘 I/O** 来自每个进程的计数器,涵盖该进程使用的所有存储。 - **设备吞吐量** 来自物理存储计数器,并通过人们熟悉的名称(如 `Macintosh HD` 或 `ExternalSSD`)显示。 - **最近的更改** 显示 macOS 观察到了某个位置发生变化;它们本身并不能识别写入者。 - **文件访问追踪** 测量通过成功系统调用请求的字节数。缓存、APFS 回写、压缩、写时复制、内存映射以及覆盖范围盲区意味着这些数值并不是物理 NAND 写入量。 - **硬盘健康** 仅包含 macOS 实际报告的字段。缺失的值将保持不可用状态,而不会变成零。 该应用**不会**宣称实现了精确的进程到物理设备的字节归因。 相关的测量结果会一并展示,而不会强行将它们相加凑整。 ## 隐私与权限 监控和分析完全在本地进行。当前版本不包含任何广告、遥测、分析或第三方追踪 SDK, 也不会上传进程活动、文件路径、监控历史或磁盘序列号。 基础监控不需要管理员批准。当你明确启动文件或文件夹追踪时, macOS 可能会要求你批准 FindDiskKiller 已签名的后台组件。 该辅助组件只能监督具有固定命令格式的、有边界的 `/usr/bin/fs_usage` 会话; 它无法执行 shell 或任意命令。它可以在“设置”中停止并移除。 阅读完整的[隐私政策](PRIVACY.md)和[安全政策](SECURITY.md)。 ## 系统要求 - macOS 14 或更高版本 - Apple silicon 或 Intel Mac - 仅在启用按需文件访问追踪时需要管理员账户 ## 安装 如果可用,官方网站的发布版本会以 universal2、Developer ID 签名、经过 Apple 公证(notarized)的磁盘镜像(DMG)形式分发。 1. 从[官方网站](https://finddiskkiller.com/en/download/)下载最新的 DMG。 2. 打开它并将 FindDiskKiller 拖入“应用程序”(Applications)。 3. 从“应用程序”中启动 FindDiskKiller。 发布的版本包含 SHA-256 校验和。切勿为签名或公证验证失败的安装包绕过 Gatekeeper。 ## 构建与测试 XcodeGen 是 Xcode 项目的唯一事实来源: 开发需要 Xcode 16 或更高版本以及 XcodeGen 2.42.0 或更高版本。 以下构建会禁用代码签名,因此不需要维护者的 Developer ID 证书: ``` git clone https://github.com/jianyintang/find-disk-killer.git cd find-disk-killer xcodegen generate xcodebuild \ -project FindDiskKiller.xcodeproj \ -scheme FindDiskKillerApp \ -configuration Release \ -destination 'generic/platform=macOS' \ CODE_SIGNING_ALLOWED=NO \ ONLY_ACTIVE_ARCH=NO \ build ``` 运行核心测试套件: ``` swift test ``` 未签名的开发构建可以验证基础的监控体验,但无法完成具有特权的文件或文件夹追踪。 App 和辅助组件会针对维护者的 Team ID 相互进行身份验证,因此该工作流必须使用官方签名构建进行验证。 批准后台组件与授予受保护位置的完全磁盘访问权限(Full Disk Access)是分开的 macOS 权限;一方并不意味着另一方。 维护者可以从干净的提交中创建签名且经过公证的网站发布版本: ``` make lint test make release VERSION=1.0.0 BUILD_NUMBER=100 ``` 发布流水线会构建 universal2 App 和辅助组件二进制文件, 验证 Hardened Runtime 和受信任的时间戳, 创建已签名的 DMG,将其提交给 Apple 进行公证,装订票据, 运行 Gatekeeper 检查,并写入 `SHA256SUMS`。使用 `SKIP_NOTARIZATION=1` 生成的构建产物仅用于本地预演,严禁发布。 在没有 Finder 自动化权限的发布主机上,无需打开 Finder 即可重用之前批准的安装程序布局: ``` DMG_TEMPLATE=artifacts/FindDiskKiller-1.0.1-101/FindDiskKiller-1.0.1.dmg \ make release VERSION=1.0.2 BUILD_NUMBER=102 ``` 在发布之前,将确切签名的发布版 App 安装到 `/Applications` 中,并运行一次特权追踪检查: ``` EXPECTED_VERSION=1.0.3 EXPECTED_BUILD=103 \ scripts/verify-installed-trace-helper.sh ``` 该检查会验证嵌入式辅助组件的身份,执行真实的文件 I/O 追踪, 确认 launchd 服务正在运行,并拒绝任何新的启动约束违规行为。 ## 架构 ``` Sources/ CFindDiskKiller/ Low-level macOS sampling bridge CFindDiskKillerTrace/ Thread-to-process identity bridge FindDiskKillerCore/ Models, aggregation, and health parsing FindDiskKillerApp/ SwiftUI application and resources FindDiskKillerTraceProtocol/ Bounded XPC contract FindDiskKillerTraceHelper/ Signed fixed-purpose helper AppConfig/ Signing, bundle, and helper metadata Tests/ Core and contract tests docs/ Product, tracing, and release documentation ``` 真正的分发产物是 Xcode 构建的 `.app`;SwiftPM 可执行文件不包含已签名的辅助组件包布局。 ## 文档 - [产品与技术计划](docs/find-disk-killer-product-and-technical-plan.md) - [深度文件追踪与 SSD 健康计划](docs/find-disk-killer-deep-tracing-and-ssd-health-plan.md) - [网站发布检查清单](docs/website-release-checklist.md) - [贡献指南](CONTRIBUTING.md) - [支持](SUPPORT.md) - [隐私](PRIVACY.md) - [安全](SECURITY.md) - [第三方声明](THIRD_PARTY_NOTICES.md) ## 支持与许可 使用 [GitHub Issues](https://github.com/jianyintang/find-disk-killer/issues) 获取 常规支持。通过 [GitHub Security Advisories] (https://github.com/jianyintang/find-disk-killer/security/advisories/new) 私下报告漏洞, 并从诊断信息中移除敏感路径、用户名和序列号。 FindDiskKiller 是开源软件,基于 [MIT License](LICENSE) 发布。第三方 应用标识仅用于识别受观察的软件,不代表任何附属关系或背书。
标签:性能分析, 硬件健康, 磁盘活动, 资源追踪