mcpField
R
run-system-diagnostics

run-system-diagnostics

github.com/mulesoft開発14247 回インストール今日更新
リポジトリ

run-system-diagnostics について

Anypoint Code Builder の最低要件を満たすか確認するシステム診断スキルです。各 OS のハードウェア情報を収集し、Windows ではディスク性能や設定も確認できます。

主な機能

  1. 01CPU、メモリ、ストレージ、空き容量、ネットワークの確認
  2. 02Anypoint Code Builder の要件との比較
  3. 03Windows でのディスク IOPS テスト
  4. 04同意を得た Defender 除外設定
  5. 05電源プランの確認と推奨

活用シーン

  1. 01インストール前の要件確認
  2. 02Windows のディスク性能の調査
  3. 03Defender スキャンと電源プランの影響評価

インストール

コマンドをコピーしてターミナルで実行します。

$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
    • バイト単位で返されます。GB を求めるには 1073741824 で割ります
  • ディスク容量:df -h /
    • ディスク容量の合計、使用済み容量、空き容量を表示します
  • ストレージの種類(NVMe):system_profiler SPNVMeDataType
    • モデル、容量、TRIM サポートなど、NVMe SSD の詳細を表示します
  • ネットワークハードウェア: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)を検出します
    • スキルの assets フォルダー(スキルのベースディレクトリからの相対パス)にある適切な diskspd.exe を使用します:
      • 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 が見つからない場合は、ダウンロードして展開します:
      • ダウンロードする前に、何をダウンロードするのか、またその理由を、たとえば「ディスクの IOPS パフォーマンスを測定するため、Microsoft の DiskSpd ユーティリティを公式 GitHub リリースから取得します。」のように、簡潔な一文でユーザーに伝えてください。
      • ダウンロード 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
        
      • 展開後、アーキテクチャ固有のサブフォルダー(amd64、arm64、または x86)に diskspd.exe が存在することを確認します
      • ダウンロードに失敗した場合(ネットワークがない、プロキシの問題など)は、ユーザーに明確に伝え、ダウンロード URL を提示して、スキル全体を失敗させるのではなく IOPS テストをスキップします
  • テストファイルを作成します:
    • コマンド: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 固有の最適化について一切言及しないでください

コメント