こんにちは、Windowsインフラエンジニア ばにゃです。
タスクスケジューラに設定されたタスクから実行されるプロセスは、デフォルトではプロセスの優先度が 通常以下(B) 、およびディスクIO優先度が 低 となっています。
そのためタスクの処理内容によっては、処理が重くなる、実行完了までに時間がかかる、といった状態になることがあります。
これらの優先度設定はタスクスケジューラの設定画面からは変更できず、タスクを一度エクスポートしてxmlファイルの内容を編集し別タスクとしてインポートし直すという作業が必要です。
本記事では、このプロセス優先度、ディスクIO優先度の変更方法について解説します。
前提となる環境
本記事では、以下のような環境を例として記載します。この環境で私自身が実機動作確認済みの手順となります。
- Windows Server 2019
- Windows Server 2016
- Windows 10
プロセスの優先度/ディスクIOの優先度を変更する方法
タスクのエクスポート
Windows + Rキー より「ファイル名を指定して実行」を起動し、以下のように入力してタスクスケジューラを起動します。
taskschd.msc
優先度を変更したいタスクを右クリックして「エクスポート」を選択します。
xmlファイルとしてエクスポートされるので、適当な名前を付けて適当な場所に保存します。
xmlファイルの編集
エクスポートしたxmlファイルをテキストエディタで開き、<priority>~</priority>と記載されている箇所を確認します。
<priority>7</priority>
priority の値はデフォルトでは 7 となっているはずです。priority 7 はプロセス優先度:通常以下(B)、ディスクIO優先度:低という状態を表しています。
<priority>の値を変更しxmlファイルを保存します。変更する値は以下の表を参照してください。
例えば<priority>の値を 3 とした場合、プロセスの優先度:通常以上(A)、ディスクIOの優先度:標準、という状態になります。
priority | プロセス優先度 | ディスクIO優先度 |
---|---|---|
0 | リアルタイム(R) | 標準 |
1 | 高(H) | 標準 |
2 | 通常以上(A) | 標準 |
3 | 通常以上(A) | 標準 |
4 | 通常(N) | 標準 |
5 | 通常(N) | 標準 |
6 | 通常(N) | 標準 |
7 | 通常以下(B) | 低 |
8 | 通常以下(B) | 低 |
9 | 低(L) | バックグラウンド |
10 | 低(L) | バックグラウンド |
タスクのインポート
タスクスケジューラを起動し、画面右のタスクのインポートを選択します。
編集したxmlファイルを選択します。
タスクに適当な名前を付けてOKをクリックします。
同じ名前でタスクを上書き保存することはできないため、エクスポート前のタスクと同じ名前にしたい場合は、タスクを事前に削除しておきましょう。
以上で手順は完了です。
参考情報
ディスクIOの優先度について
priority値によるプロセス優先度の違いについては、Microsoftの以下のサイトに情報がまとまっていますが、ディスクIOの優先度については公開情報が見つかりませんでした。
そのため priority値を 0 ~ 10 の11通りで実際にタスクを作成し、リソースモニターよりディスクIO優先度を確認しました。確認結果について以下にまとめていますので参考にしてみてください。
priority | プロセス優先度 | ディスクIO優先度 |
---|---|---|
0 | リアルタイム(R) | 標準 |
1 | 高(H) | 標準 |
2 | 通常以上(A) | 標準 |
3 | 通常以上(A) | 標準 |
4 | 通常(N) | 標準 |
5 | 通常(N) | 標準 |
6 | 通常(N) | 標準 |
7 | 通常以下(B) | 低 |
8 | 通常以下(B) | 低 |
9 | 低(L) | バックグラウンド |
10 | 低(L) | バックグラウンド |
関連記事
Microsoft ドキュメント
priorityプロパティに関してはMicrosoft の以下サイトも参考にしてください。
コメント