run-system-diagnostics について
Anypoint Code Builder の最低要件を満たすか確認するシステム診断スキルです。各 OS のハードウェア情報を収集し、Windows ではディスク性能や設定も確認できます。
主な機能
- 01CPU、メモリ、ストレージ、空き容量、ネットワークの確認
- 02Anypoint Code Builder の要件との比較
- 03Windows でのディスク IOPS テスト
- 04同意を得た Defender 除外設定
- 05電源プランの確認と推奨
活用シーン
- 01インストール前の要件確認
- 02Windows のディスク性能の調査
- 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
- amd64 の場合:
- 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>\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 対応