質問

tasklist を使用して、CPUのXパーセント以上を消費しているプロセスを見つけようとしています(後で taskkill で強制終了します)。

時間形式が何パーセントを表すかを知るにはどうすればよいですか

ドキュメントによると:

TASKLIST options

/FI   filter               

また、1つのフィルターは次のようになります。

CPUTIME         eq, ne, gt, lt, ge, le        CPU time in the format: hh:mm:ss.
                                              hh - number of hours,
                                              mm - minutes, ss - seconds

試した場合

tasklist /FI "CPUTIME gt 00:00:10" 

動作します。

ただし、私が

の場合
tasklist /FI "CPUTIME gt 90"

そうではありません。

時間形式が90%であることをどのように知ることができますか?それとも80%? CPU使用時間とCPU使用率の関係はどうですか?

役に立ちましたか?

解決

TasklistのCPUTimeは、プロセスの開始以降に使用されたCPU時間(サイクル)の測定値であるため、これをパーセントに変換するには、

 (TotalProcessRuntime / CpuTime) / 100

少なくとも、それは私が収集するものです:)

他のヒント

tasklistでこれを行う簡単な方法はないようですので、VBscriptまたは別のスクリプト言語でこれを行うか、別のアプローチを使用することをお勧めします。バッチファイルに制限されている場合は、 WMIC コマンドを使用できます。それぞれのCPUTimeで実行中のプロセスのリストを取得するには:

C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime

Name                 PercentProcessorTime
Idle                 0
System               0
Smss                 0
csrss                0
winlogon             0
services             0
lsass                0

[...]

wmiprvse             100
wmic                 0
_Total               100

このテストでは、wmipsrv.exeのCPU使用率が100%であることが示されました。これは、WMIクエリの実行中にスパイクが発生したためです。スクリプトでそれを説明する必要があります。そうしないと、WMIサービスを絶えず強制終了しようとすることになります;)

リファレンス:
http:// waynes-world-it .blogspot.com / 2008/09 / useful-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top