はじめに
Windowsのタスクスケジューラは、定期的なバックグラウンドタスクや特定のイベントに対する応答といった、自動化されたタスクの実行を可能にする強力なツールです。しかし、タスクスケジューラから起動したプロセスが遅いと感じたことはありませんか?
その原因の一つに、プロセスの優先度が関与している可能性があります。
プロセスの優先度とは
プロセスの優先度は、CPUのリソースをどのプロセスが優先的に使用するかを決定する値です。優先度が高いプロセスは、低いプロセスよりも多くのCPU時間を得ることができます。Windowsでは、プロセスの優先度はの0~10のレベルに分けられています。
優先度レベル 0 が最も優先度が高く、優先度レベル 10 が最も低い優先度です。 既定値は 7 です。
タスクスケジューラのプロセス優先度
タスクスケジューラから起動されるプロセスの優先度は、デフォルトでは「通常」(レベル7)に設定されています。これは、他の多くのプロセスと同じ優先度で、CPUリソースを公平に共有することを意味します。しかし、これが問題となる場合もあります。例えば、大量のデータを処理する必要があるバッチファイルや、高度な計算を行うアプリケーションなど、高いパフォーマンスが求められるタスクの場合、優先度が「通常」では不十分な場合があります。
タスクの優先度 | Priority クラス | Priority クラス |
0 | REALTIME_PRIORITY_CLASS | THREAD_PRIORITY_TIME_CRITICAL |
1 | HIGH_PRIORITY_CLASS | THREAD_PRIORITY_HIGHEST |
2 | ABOVE_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_ABOVE_NORMAL |
3 | ABOVE_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_ABOVE_NORMAL |
4 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
5 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
6 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
7 | BELOW_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_BELOW_NORMAL |
8 | BELOW_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_BELOW_NORMAL |
9 | IDLE_PRIORITY_CLASS | THREAD_PRIORITY_LOWEST |
10 | IDLE_PRIORITY_CLASS | THREAD_PRIORITY_IDLE |
優先度の変更方法
タスクスケジューラでは、各タスクのプロセス優先度を個別に設定することが可能です。
タスクスケジューラを開き、優先度を変更したいタスクを右クリックし、「エクスポート」を選択。
タスクの登録情報のXMLファイルを出力することができます。
出力したXMLファイルを開き、”priority”(優先度)の”7”という数字を任意の値に変更し、保存します。
上記でエクスポートした登録済みのタスクを右クリックし「削除」します。
タスクスケジューラの「タスクスケジューラライブラリ」で右クリックし「インポート」を選択。
“priority”を編集して保存したXMLを指定しタスクを登録することで、タスクの優先度の変更が可能です。
注意点
優先度を変更する際には注意が必要です。優先度を”0″(リアルタイム)に設定すると、そのプロセスはすべてのCPUリソースを占有し、他のプロセスが遅くなる可能性があります。また、優先度を上げすぎると、システムの安定性に影響を及ぼす可能性もあります。
まとめ
タスクスケジューラは強力なツールですが、そのパフォーマンスはプロセスの優先度に大きく依存します。適切な優先度を設定することで、タスクの実行速度を向上させることが可能です。ただし、システム全体のパフォーマンスと安定性を維持するためには、優先度の設定には注意が必要です。適切な優先度の設定により、安定運用を実現することが可能です。