ウィンドウサービスのCPU使用率を追跡するにはどうすればよいですか?


27

Windowsタスクマネージャーを使用してCPU使用率を追跡しています。私のアプリケーションはリストされていますが、Windowsサービスはリストされていません。

たとえば、合計CPU使用率は70%でリストされていますが、リストされているアプリケーションの要約は約30%のみです。違いは、Windowsタスクマネージャーの[プロセス]タブにリストされていないサービスとの違いだと思います。


回答:


25

Windows 7および8で外部ツールを使用せずにサービスの詳細を取得する方法は次のとおりです。

リソースモニターを開きます。

  • タスクマネージャーを開き、[パフォーマンス]タブをクリックします。
  • 下部にある[リソースモニターを開く]をクリックします。

サービスの詳細を表示:

  • 「CPU」タブをクリックします
  • [プロセス]セクションで、目的のプロセスを見つけます。「CPU」列ヘッダーをクリックして、CPUでソートできます
    • その横のボックスをチェックします
  • 以下の「サービス」セクションを展開します。CPUを使用している特定のサービスが表示されます

ここに画像の説明を入力してください

svchostは多くのリソースを消費していたため、これを把握する必要がありましたが、これがupnphostが犯人であることがわかりました。


「プロセス」の下に展開できる「サービス」セクションもあります。いずれにせよ、ありがとう!
ニコラスライリー

それは私が話していたことです、あなたがそれを見つけてくれてうれしいです:-)「プロセス」(私の場合は特定のsvchostなど)の下でプロセスを選択することで、その特定に関連付けられている「サービス」ビューでサービスを見ることができますプロセス。
ドミニクアンドレアス

最後に、Windows 7で100%で1 CPUを使用する神秘的なサービスを追跡できるのは、15分間アイドル状態になった後に画面がオフになったときだけです。起動するとすぐに、サービスは使用中のCPUを解放します。私はちょうどそれが「svchost」であることを見るのに十分見ました...今、平均60秒で、私はそれを見る時間があるでしょう。くそーボットネット!
MrBrody

7

おそらく、最良のツールはSysinternalsのProcess Explorerです。このツールや他の多くのツールをここで入手できます

編集:個別のプロセスとしてではなくsvchostで実行されているサービスを確認するには、右側のウィンドウに「コマンドライン」列を追加する必要があります。残念ながら、これは一緒にバンドルされて実行されるサービスを表示しません。Process Explorerでその情報を表示するには、問題のsvchostの特定のインスタンスの上にマウスを置く必要があります。情報がポップアップに表示されます。


procmonでtaskmanを置き換えることもできます。Procmonは、自分自身をtaskmanのデバッガーとして登録し、何かがtaskmanを開始したいときにtaskmanの代わりに自分自身を実行するだけでこれを行います。
ブライアンライター

おっと。procmonではなく、procexpを意味します。(Procmonは、sysinternalsの別のツールであり、レジストリ、ファイルシステム、およびプロセスのWindows APIアクセスを監視できます。)
ブライアンライター

[ファイル]> [すべてのプロセスの詳細を表示]を使用する場合、svchost.exeのそのインスタンスのプロセスプロパティの[スレッド]タブを使用して(プロセスをダブルクリックするかEnterキーを押す)、スレッドごとのCPU使用率を確認できます。 [サービス]列には、対応するサービスがリストされます。
ニコラスライリー

ProcessExplorerの[サービス]タブと[TCP / IP]タブから、特定のサービスIDに関する貴重な情報が得られました。また、別の回答として以下に投稿する標準のタスクマネージャーで、マウスの右クリックによるサービス識別の別の方法もあります。
アレックスフォーチュナ

1

Extensoft Free Extended Task Managerをお試しください

http://www.extensoft.com/?p=downloads

移動サービスの実行中のサービスのタブを右クリックし、をクリックしてプロセスに移動します

[プロセス]タブに戻り、そのサービスで使用されているプロセスを強調表示します。


extensoft無料の拡張タスクマネージャーをインストールしました。サービスタブを追加します。サービスをクリックして、[プロセスに移動]を選択します。プロセスタブに切り替わりますが、プロセスは強調表示されません。また、リスト内のすべてのサービスのCPU使用量を表示するツールはありますか(タスクマネージャーのプロセスリストと同様)。注:Windows Vista Home Premium Editionを使用しています。

なぜそれがプロセスを強調していないのか分かりません。私の隣にはVistaマシンもあり、どのプロセスがサービスに関連しているかを示しています。
-Qwerty

1

多くのサービスは、汎用ホストプロセスsvchost.exeのインスタンス内で実行されます。コマンドラインでtasklist / svcを使用して、svchost.exeの各インスタンス内で実行されているサービスの列挙を他のプロセスと共に取得できます。

タスクマネージャでsvchost.exeプロセスを右クリックして「Go to Service(s)」を選択すると、taskmanがサービスタブに切り替わり、関連するサービスを強調表示します。

Sysinternalsのプロセスエクスプローラは、あなたのマウスでservicehost.exeの上に置いて、内ホスティングサービスのツールチップを見ることができます。

これらのいずれも、ホストサービスプロセスのCPU時間のうち、ホストされている特定のメンバーサービス専用であるかどうかはわかりません。


tasklist /svcPIDと関連サービスを簡単な形式で示しています。ありがとうございました!
アレックスフォーチュナ

1

これは、Windows 7 Ultimateで利用可能な標準のタスクマネージャーで機能しました。

  1. タスクマネージャーを開きます。
  2. [プロセス]タブをクリックします。
  3. [すべてのユーザーのプロセスを表示]ボタンをクリックします。
  4. 右クリックしてsvchost.exe、あなたにトラブル(などのメモリ、CPUなど)を原因となっています
  5. プルダウンメニューで[Go to Service(s)]を選択します。

1つ以上の関連サービス強調表示された[サービス]タブが表示されますsvchost.exe[サービス]タブでは、単一のサービスを複数のサービスに関連付けることができます。


0

管理者としてタスクマネージャーを開く必要があります。[すべてのユーザーのプロセスを表示]ボタンをクリックします。

しかし、ブライアンライターが言ったように、多くのサービスは1つのプロセス内でホストされています。どのサービスがCPUを消費しているかを知るために、私のサービス開示ツールを試すことができます。サービスを専用プロセスに分割できます。リソースを使用しているサービスを確認できます。調査後、すべてのサービスを戻すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.