Windows 10 / 11 常駐ツール

あのカクつき、原因を突き止めたい

StallScope は、症状が出る前から回り続けて証拠を残す常時監視ツール。1 秒ごとに、コアごと・ドライブごとの指標をすべて記録し、画面が実際に固まった瞬間をミリ秒で測る。あとは、思い当たった時刻のレポートを出すだけ。

固まってからタスクマネージャを開いても、もう遅い

「たまにマウスがカクつく」「一瞬だけ固まる」たぐいの症状には、共通の厄介さが 2 つある。どちらも道具の問題ではなく、調べ始める時刻の問題になっている。

  • いつ

    調べる頃には終わっている

    数秒で復帰する症状は、タスクマネージャを開き終えた頃には痕跡が消えている。残っているのは記憶だけで、再現待ちで張り付くしかなくなる。

  • なに

    平均値には出ない

    固まっている数秒の間だけ、ディスクの遅延とキュー長が跳ねる。その間の CPU もメモリも GPU も正常値のままなので、平均や「現在値」を見ていると何も起きていないように見える。1 分の平均に均した時点で、その数秒は消える。

だから StallScope は「軽くて綺麗な監視ツール」ではない。症状が出る前から回っていて、後から証拠が残っていることだけを目的に作ってある。

機能

設計はすべて、上の 2 つの厄介さから逆算している。

  • 固まったことを直接測る

    性能カウンタはすべて「原因の候補」でしかない。StallScope は監視スレッド自身の起床遅延を測っていて、これだけが「実際に止まったかどうか」を答えている。既定では 200ms を超えた時点でストールとして台帳に残る。

  • 集計値に潰さない

    コアごと・ドライブごとの値を、それぞれ独立した列として全部記録する。「いちばん大きい 1 個だけ保存」では、後から分布を復元できない。1 コアだけ張り付いた状態は _Total の列には出てこない。

  • 症状が出ている最中に開ける画面

    直近 1 時間をメモリ上のリングバッファから描くので、画面を開いてもディスクを読まない。固まっている最中に数日分のログを読み始めるのでは本末転倒になる。

  • 通知領域のアイコンが計測値そのもの

    棒 1 本が 12 秒、5 本で直近 1 分。高さはその区間のいちばん悪い値で、閾値を超えた棒は赤くなる。棒に載せる値は切り替えられる(既定は、いちばん逼迫しているものを自動で選ぶ)。どれを選んでも起床遅延はアイコン上端の帯に残るので、「固まったかどうか」を答えない状態にはならない。

  • 異常区間・要因ランキング・プロセス関与度

    レポートは異常な区間を抜き出し、平常時のばらつきで正規化したずれで要因を並べ、その時刻に何が動いていたかまで出す。閾値を下げて出し直すこともできる。

  • ユーザー権限だけで動く

    管理者権限を要求しない。収集コストは自己診断コマンドがその場で実測し、開発機では 1 秒あたり 9.0ms、1 コアの 0.90% だった。

症状は同じでも、原因は違う

「固まる」は結果であって原因ではない。StallScope は固まった瞬間の指標を全部そろえて残しているので、同じ症状から原因を切り分けられる。

  • ディスクも CPU も正常なのに固まる

    コミット率だけが上限に張り付いていれば、メモリの割り当て待ち。タスクマネージャの既定の「メモリ」列はワーキングセットなので余裕があるように見え、コミット量を別に記録していないと辿り着けない。

  • 固まると同時にディスクの遅延とキューが跳ねる

    CPU もメモリも正常値のままなら、ストレージの I/O ストール。平均値は平常のままなので、ドライブごとに 1 秒間隔で残していないと後からは見えない。

  • 全体の CPU は低いのにカクつく

    1 コアだけが張り付いていれば、そこで動いているスレッドの問題。全体の使用率や _Total の列では最後まで見えない。

  • 短い途切れが繰り返し起きる

    DPC や割り込みの割合が上がっていれば、ドライバ側の処理。コアごとに記録しているので、どのコアで起きているかまで残る。

決め手になるのは、どれか 1 つの指標ではなく「ほかが正常だったこと」。だから集計値に潰さず、全部を横並びで残している。

画面

どの画像も合成データではなく、実際の描画コードがそのまま出力したもの。

  • ダッシュボード。上段に起床遅延の大きなグラフがあり、平常の緑の帯から 3 本の赤いスパイクが突き出し、200ms と 80ms の閾値が破線で引かれている。下段はディスク遅延・CPU・コミット率の 3 つのグラフが横に並び、いちばん下に現在値の一覧と、直近のストールを時刻と長さで並べた表がある
    通知領域から開くダッシュボード。主役は上段の起床遅延
  • 設定画面。上にデータの出力先の入力欄と参照ボタン、その下にシステム収集間隔・プロセス収集間隔・ストール閾値・保持日数の 4 つの数値欄が桁を揃えて並び、いちばん下に自動起動とトレイアイコンのチェックボックスがある。各欄の右にはその値が何を意味するかが書かれている
    設定画面。出力先・収集間隔・閾値・自動起動をその場で変える
  • 通知領域アイコンの状態が 5 つ横に並んでいる。左端は灰色の低い棒に緑が 1 本の平常時、右へ進むにつれて棒が高くなり橙に変わり、右端は赤い棒が並んだストール時。各状態の右には実寸 16 ピクセルの表示も添えられている
    通知領域のアイコン。左が平常、右へ行くほど悪い

料金

記録は全プランで同じもの。Pro が足すのは、そのデータの読み解きかた。

機能無料Pro
1 秒ごとの記録。全項目をコア別・ドライブ別に使える使える
ストール検出と、固まった瞬間のスナップショット使える使える
解析レポート(異常区間・要因ランキング・プロセス関与度)使える使える
ダッシュボードと通知領域のアイコン使える使える
対策を打った時点のマーカー記録使える使える
1 日 1 行の長期要約の蓄積使える使える
前後比較 — 対策を打つ前と後を突き合わせて、効いたかを確かめる使えない使える
共有用レポート — 匿名化した PDF。サポート窓口や修理店にそのまま出せる使えない使える
長期トレンド — 月ごとの推移。悪化しているかが分かる使えない使える
PDF 出力 — どのレポートも、フォントを埋め込んだ 1 つの文書として書き出せる使えない使える

マーカーも日次要約も、無料のうちから記録されている。Pro を有効にした日から、それまでの分がそのまま読める。

無料

0 円ずっと

原因を突き止めるところまで

  • アプリ本体は Microsoft Store から無料で入手する。ここで買うのは Pro の鍵だけで、買ってもアプリは入らない。
  • 決済が済むと、ライセンスキーが完了画面とメールで届く。アプリの設定画面でそれを入力すると Pro になる。
  • 解約はアプリの設定画面からいつでも。支払い済みの期間の終わりまでは Pro のまま使えて、そのあとも無料の機能はそのまま残る。

1 つの鍵で同時に 3 台まで使える。30 日使わなかった端末は自動で外れる。

決済は Stripe が処理する。カード情報がアプリを通ることはない。

価格・支払い・解約の条件(特定商取引法に基づく表記)

動作環境

OS
Windows 10 バージョン 1809 以降 / 11(64 ビット)
記録先
システムドライブ以外のドライブを 1 つ。監視対象の C: が固まったときに、記録する側まで巻き込まれないようにするため(既定でそうなっている)
容量
1 日あたり約 10MB(圧縮後)。既定の保持期間は 14 日
表示言語
日本語 / English。既定は Windows の表示言語に従い、設定画面で切り替えられる

入手する

Microsoft Store から

署名も自動更新もストアが持つ。インストールボタンひとつで入り、ログオンした時点から記録が始まる。

Microsoft Store で入手する