mcpField
R
run-system-diagnostics

run-system-diagnostics

github.com/mulesoft开发14247 次安装今天更新
代码仓库

关于 run-system-diagnostics

用于检查系统是否达到 Anypoint Code Builder 最低配置的技能,并按平台收集硬件信息。Windows 上还可执行磁盘性能测试,并在征得同意后应用 Defender 排除项或更改电源计划。

主要功能

  1. 01检查 CPU、内存、存储、磁盘空间和网络
  2. 02对照 Anypoint Code Builder 最低配置
  3. 03Windows 磁盘 IOPS 测试
  4. 04征求同意后调整 Defender 排除项
  5. 05检查并建议电源计划

适用场景

  1. 01安装前核对系统是否满足要求
  2. 02排查 Windows 上的磁盘性能
  3. 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
    • 如果 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>\AnypointCodeBuilder
        • C:\Users\<USERNAME>\.vscode
        • C:\Users\<USERNAME>\.m2
        • C:\Users\<USERNAME>\AppData\Local\Temp
  • 确定缺少哪些排除项:
    • 找出尚未排除的进程
    • 找出尚未排除的路径
    • 如果所有排除项都已存在,告知用户并跳过此步骤
  • 征求用户许可(仅当存在缺少的排除项时):
    • 向用户列出尚未排除的具体文件/路径
    • 说明这些排除项如何提升 ACB 性能(减少扫描开销)
    • 询问用户是否要添加缺少的排除项
    • 允许用户拒绝
  • 应用排除项(仅当用户同意时):
    • 运行 PowerShell 命令添加缺少的排除项:
      • 对可执行文件使用 Add-MpPreference -ExclusionProcess
      • 对目录使用 Add-MpPreference -ExclusionPath
    • 处理管理员权限错误:
      • 如果命令因权限不足而失败,捕获错误
      • 告知用户需要管理员权限
      • 提供可让用户请求管理员运行的确切命令
      • 不要显示令人担忧的错误消息,只需清楚说明所需操作
C. 电源计划分析
  • 使用以下命令检查当前启用的电源计划:powershell.exe -Command "powercfg /getactivescheme"
  • 向用户显示当前电源计划
  • 分析当前电源计划是否满足 ACB 的需求:
    • 高性能:✓ 最适合 ACB,无需更改
    • 平衡:⚠ 可能影响 ACB 性能,建议切换到高性能
    • 节能:✗ 不建议用于 ACB,强烈建议切换到高性能
  • 如果当前计划不是高性能:
    • 说明为什么建议 ACB 使用高性能计划
    • 询问用户是否要切换到高性能
    • 提供命令:powercfg /setactive SCHEME_MIN(需要管理员权限)
    • 允许用户选择跳过此步骤
  • 如果当前计划已经是高性能,告知用户并跳过此步骤

第 5 步:输出格式

  • 以清晰、格式化的表格展示检查结果
  • 对于 Windows 系统,清楚说明各项优化步骤的状态
  • 对于电源计划:显示当前计划,提供分析,并在进行更改前征求用户确认
  • 如果需要管理员权限,告知用户并提供需要运行的确切命令
  • 如果任何规格不符合要求,清楚标出并建议可能的解决方案
  • 尊重用户跳过可选优化步骤的选择

重要说明

  • Windows 优化需要管理员权限
  • 更改前务必验证系统信息
  • 清楚反馈已检查的内容和已采取的操作
  • 对于非 Windows 系统(macOS、Linux),完全不要提及 Windows 专属优化

评论

支持 Markdown