关于 run-system-diagnostics
用于检查系统是否达到 Anypoint Code Builder 最低配置的技能,并按平台收集硬件信息。Windows 上还可执行磁盘性能测试,并在征得同意后应用 Defender 排除项或更改电源计划。
主要功能
- 01检查 CPU、内存、存储、磁盘空间和网络
- 02对照 Anypoint Code Builder 最低配置
- 03Windows 磁盘 IOPS 测试
- 04征求同意后调整 Defender 排除项
- 05检查并建议电源计划
适用场景
- 01安装前核对系统是否满足要求
- 02排查 Windows 上的磁盘性能
- 03评估 Defender 扫描和电源计划影响
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mulesoft/ mulesoft-dx --skill run-system-diagnostics安装后在 Claude Code 中输入/run-system-diagnostics确认已加载。
详细介绍
ACB 系统诊断
此技能用于检查用户的系统是否满足 Anypoint Code Builder 的最低规格要求,并应用必要的 Windows 优化。
最低规格要求
- CPU:8 核/8 vCPU
- RAM:32GB
- 存储类型:NVMe SSD(PCIe 3.0+)
- 可用磁盘空间:50GB
- 网络速度:1Gbps
步骤
第 1 步:检测操作系统
- 确认用户使用的是 Windows、macOS 还是 Linux
第 2 步:收集系统信息
- CPU:核心数/vCPU 数
- RAM:总内存,单位为 GB
- 存储类型:确认存储使用 NVMe 标准(必须为 NVMe,而非 SATA SSD 或 HDD)
- 可用磁盘空间:可用空间,单位为 GB
- 网络速度:网络接口速度
对于 Windows 系统,请使用以下 PowerShell 命令:
- CPU 和 RAM 信息:
powershell.exe -Command "Get-ComputerInfo | Select-Object CsProcessors, CsTotalPhysicalMemory, OsArchitecture" - 逻辑处理器:
powershell.exe -Command "(Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors" - 存储信息:
powershell.exe -Command "Get-PhysicalDisk | Select-Object MediaType, BusType, Size, FriendlyName" - 磁盘空间:
powershell.exe -Command "Get-PSDrive C | Select-Object Used, Free" - 网络速度:
powershell.exe -Command "Get-NetAdapter | Select-Object Name, Status, LinkSpeed"
对于 macOS 系统,请使用以下命令:
- CPU 核心数:
sysctl -n hw.physicalcpu && sysctl -n hw.logicalcpu- 返回物理核心数和逻辑核心数(比较时使用逻辑核心数)
- RAM:
sysctl -n hw.memsize- 返回字节数,除以 1073741824 即可换算为 GB
- 磁盘空间:
df -h /- 显示磁盘空间总量、已用空间和可用空间
- 存储类型(NVMe):
system_profiler SPNVMeDataType- 显示 NVMe SSD 详细信息,包括型号、容量和 TRIM 支持情况
- 网络硬件:
networksetup -listallhardwareports- 列出所有网络接口
- Wi-Fi 状态:
ifconfig en0 | grep 'status:' && networksetup -getinfo Wi-Fi- 显示 Wi-Fi 是否处于活动状态及配置信息
- Wi-Fi PHY 模式:
system_profiler SPAirPortDataType | grep -A 10 "Current Network Information" | grep -E "Link Speed|PHY Mode"- 显示 Wi-Fi 标准(802.11ax = Wi-Fi 6 等)
第 3 步:与最低规格要求进行比较
- 对于每个组件,标明其是否满足(✓)或未达到(✗)最低要求
- 收集完系统信息后,立即显示清晰的汇总表,包含以下内容:
- 组件
- 当前值
- 最低要求
- 状态(通过/未通过)
- 不要等到技能结束时才显示此表
第 4 步:Windows 专属优化
(仅适用于 Windows 系统)
A. IOPS 性能测试
- 定位 DiskSpd 可执行文件:
- 检测处理器架构(amd64、arm64 或 x86)
- 从 skill 的 assets 文件夹中使用相应的 diskspd.exe(相对于 skill 基础目录):
- 对于 amd64:
{skill_base_directory}/assets/DiskSpd/amd64/diskspd.exe - 对于 arm64:
{skill_base_directory}/assets/DiskSpd/arm64/diskspd.exe - 对于 x86:
{skill_base_directory}/assets/DiskSpd/x86/diskspd.exe
- 对于 amd64:
- 如果 DiskSpd assets 文件夹或所需的 diskspd.exe 缺失,请下载并解压:
- 下载前,用一句简洁的话告知用户要下载什么以及原因,例如:“正在从官方 GitHub 发行版获取 Microsoft 的 DiskSpd 实用工具,以测试磁盘的 IOPS 性能。”
- 下载 URL:
https://github.com/microsoft/diskspd/releases/download/v2.2/DiskSpd.ZIP - 目标位置:
{skill_base_directory}/assets/DiskSpd/ - 使用 PowerShell 下载并解压:
$target = "{skill_base_directory}/assets/DiskSpd" $zip = Join-Path $env:TEMP "DiskSpd.ZIP" New-Item -ItemType Directory -Force -Path $target | Out-Null Invoke-WebRequest -Uri "https://github.com/microsoft/diskspd/releases/download/v2.2/DiskSpd.ZIP" -OutFile $zip -UseBasicParsing Expand-Archive -Path $zip -DestinationPath $target -Force Remove-Item $zip -Force - 解压后,确认
diskspd.exe存在于对应架构的子文件夹(amd64、arm64或x86)中 - 如果下载失败(无网络、代理问题等),请明确告知用户,提供下载 URL,并跳过 IOPS 测试,而不是让整个 skill 失败
- 创建测试文件:
- 命令:
diskspd.exe -c1G testfile.dat - 此命令会创建 IOPS 测试所需的 1GB 测试文件
- 注意:DiskSpd 需要一个预先存在的文件作为测试对象
- 命令:
- 运行随机读取 IOPS 测试:
- 命令:
diskspd.exe -b4K -d30 -o32 -t4 -r -w0 -Sh testfile.dat - 此测试使用 4KB 块,进行 30 秒的随机读取 IOPS 测试
- 要求:≥10,000 IOPS
- 命令:
- 运行随机写入 IOPS 测试:
- 命令:
diskspd.exe -b4K -d30 -o32 -t4 -r -w100 -Sh testfile.dat - 此测试使用 4KB 块,进行 30 秒的随机写入 IOPS 测试
- 要求:≥8,000 IOPS
- 命令:
- 解析并显示结果:
- 从 DiskSpd 输出中提取 IOPS 数值
- 与最低要求进行比较:
- 随机读取:最低 10,000 IOPS
- 随机写入:最低 8,000 IOPS
- 立即显示一个表格,其中包含读取和写入 IOPS 结果及通过/未通过状态
- 如果测试未通过,请提供存储改进建议
- 清理:
- 测试结束后删除 testfile.dat
B. Microsoft Defender 排除项
- 首先,检查当前排除项:
- 使用 PowerShell 检查现有进程排除项:
Get-MpPreference | Select-Object -ExpandProperty ExclusionProcess - 使用 PowerShell 检查现有路径排除项:
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath - 动态检测当前用户的用户名
- 将当前排除项与建议的排除项进行比较:
- 进程排除项:
java.exe、javaw.exe、node.exe、Code.exe - 路径排除项(使用当前用户名):
C:\Users\<USERNAME>\AnypointCodeBuilderC:\Users\<USERNAME>\.vscodeC:\Users\<USERNAME>\.m2C:\Users\<USERNAME>\AppData\Local\Temp
- 进程排除项:
- 使用 PowerShell 检查现有进程排除项:
- 确定缺少哪些排除项:
- 找出尚未排除的进程
- 找出尚未排除的路径
- 如果所有排除项都已存在,告知用户并跳过此步骤
- 征求用户许可(仅当存在缺少的排除项时):
- 向用户列出尚未排除的具体文件/路径
- 说明这些排除项如何提升 ACB 性能(减少扫描开销)
- 询问用户是否要添加缺少的排除项
- 允许用户拒绝
- 应用排除项(仅当用户同意时):
- 运行 PowerShell 命令添加缺少的排除项:
- 对可执行文件使用
Add-MpPreference -ExclusionProcess - 对目录使用
Add-MpPreference -ExclusionPath
- 对可执行文件使用
- 处理管理员权限错误:
- 如果命令因权限不足而失败,捕获错误
- 告知用户需要管理员权限
- 提供可让用户请求管理员运行的确切命令
- 不要显示令人担忧的错误消息,只需清楚说明所需操作
- 运行 PowerShell 命令添加缺少的排除项:
C. 电源计划分析
- 使用以下命令检查当前启用的电源计划:
powershell.exe -Command "powercfg /getactivescheme" - 向用户显示当前电源计划
- 分析当前电源计划是否满足 ACB 的需求:
- 高性能:✓ 最适合 ACB,无需更改
- 平衡:⚠ 可能影响 ACB 性能,建议切换到高性能
- 节能:✗ 不建议用于 ACB,强烈建议切换到高性能
- 如果当前计划不是高性能:
- 说明为什么建议 ACB 使用高性能计划
- 询问用户是否要切换到高性能
- 提供命令:
powercfg /setactive SCHEME_MIN(需要管理员权限) - 允许用户选择跳过此步骤
- 如果当前计划已经是高性能,告知用户并跳过此步骤
第 5 步:输出格式
- 以清晰、格式化的表格展示检查结果
- 对于 Windows 系统,清楚说明各项优化步骤的状态
- 对于电源计划:显示当前计划,提供分析,并在进行更改前征求用户确认
- 如果需要管理员权限,告知用户并提供需要运行的确切命令
- 如果任何规格不符合要求,清楚标出并建议可能的解决方案
- 尊重用户跳过可选优化步骤的选择
重要说明
- Windows 优化需要管理员权限
- 更改前务必验证系统信息
- 清楚反馈已检查的内容和已采取的操作
- 对于非 Windows 系统(macOS、Linux),完全不要提及 Windows 专属优化
评论
支持 Markdown