処理時間が短くなった!Windowsのタスク実行が遅い場合は「優先度」を見直しましょう
先日、ファイルサーバをリプレースしました。
インストールされていたOSがWindows Server 2003だったので、OSを新しくする必要がありました。
マイクロソフトのサポートが無くなりますので。
Windows Server 2012 R2のセットアップを終え、ファイルサーバのバックアップ処理をタスクスケジューラに登録し、実行したところ、何か処理が遅い。。。
バッチファイルを直接実行した時と比べると、体感レベルでわかる遅さです。
調べてみると、バックアップ処理に使っている「robocopy」コマンドの優先度が「通常以下」になってます。
これまでは「通常」だったので一つ低くなってしまっています。
優先度が低くなったのが原因のようです。
画面から優先度を変更できない!
優先度を変えようと、タスクスケジューラの設定画面を探しましたが、変更できそうな箇所が見つかりません。
どうやら画面からは設定できないようです。
恐らくですが、「タスク起動されるのはバックグラウンド処理なので、メインのアプリケーション処理を邪魔しないよう優先度を低くしている」ということなのでしょう。
それはそれで良いんですが、やはりバッチ処理でも速く処理させたいことはあります。
方法が見つかった!
困っていたところ、こんな記事を見つけました。
一度エクスポートするのがポイントのようです。
- タスクを一度エクスポートする。
今回の場合、「ファイルのバックアップ.xml」というファイルができました。
中身はテキストです。
- XMLファイルをテキストエディタで開き、Priorityタグの値を 6 に変更する。
7は「標準以下」、6が「標準」という意味になります。
- 同じ名前での上書きインポートはできないので、あらかじめタスクを消す。
消しておかないと、インポート時にエラーになります。
- タスクをインポートする。
先ほど修正したXMLファイルを指定すればOK。
Irisさま、素晴らしい情報をありがとうございます!
優先度が上がった!
インポートしたタスクを実行してみます。
優先度を確認すると、ちゃんと「標準」になっていることが確認できました!
実際にバッチ処理(今回はバックアップ)を実行してみましたが、処理時間が短くなったのが確認できました。
これまではタスク優先度が低かったので、リソースが割り当てられてなかったのですね。
どうやらVista以降、このような仕様に変わったらしい。
- Windows 7
- Windows 8、8.1
- Windows Server 2008
- Windows Server 2012
このあたりは同じようです。
今回のOSは、Windows Server 2012 R2でした。
どこかに説明が欲しかった
優先度を上げることで、いつもの速度でタスク処理ができるようになった訳ですが、今回は「直接バッチ処理を実行していた」ので遅くなってることに気づけました。
最初から、タスクスケジューラから実行してた場合、「これくらいの速度なのね」と気づくことが無かったと思います。
設定画面から優先度が変更できないのは良いとしても、優先度の表示だけでもあれば良かったと思います。
「優先度:標準以下」とか表示されていれば気づきますので。
まとめ
Windowsのタスク処理が遅かったのは、優先度が下がってたのが原因でした!
「標準」ではなく「標準以下」になってました。
今度からタスクを作る時には気をつけないといけませんね。
一度作ったタスクをインポートし直すだけとは言え、ちょっと面倒です。
修正パッチか何かで、優先度が変更できるようになるとありがたい!
コメント
トラックバックは利用できません。
コメント (0)
この記事へのコメントはありません。