はじめに
こんにちは!BFT名古屋支店・インフラ女子(?)のやまぐちです。
ここ2か月くらいブルースクリーンでPCが突然落ちることがあります。頻度は1,2週間に一回なのですが、あまりにもショック過ぎてブルースクリーン中に表示されるエラーコードを確認する心の余裕もありません。
原因はまたちゃんと追究するとして私が通常使っているPCはメモリが4GBと少な目です。ブラウザのタブはすぐに閉じる、不要なアプリケーションは停止する、そういった対応をしていても基本的にメモリの使用率が80~90%となってしまうので、定期的にメモリを解放する仕組みを導入しようと思います。
ちなみに所要時間は10分くらいです!
メモリを自動的に開放する
今回やることを図に表すと以下のような感じです。直接exeを実行せずにvbsを経由することで、実行時にバックグラウンドで実行し、プロンプトが起動しないようにするためです。
STEP1.ツールをダウンロード
このツールは元々Microsoft純正のツールだったのですが現在は削除されており有志で上げてくれる方のDropboxからダウンロードすることになります。アクセス先で「ダウンロード」を押してください。
Dropbox - rktools.exe - Simplify your life
STEP2.インストールする
ダウンロードした「rktools.exe」を実行すると、以下のポップアップが表示されました。元が純正であってもすでにMicrosoftからは削除されたツール。自己責任でお願いします。
基本的にそのままNextでインストールして構いませんが、インストールパスから必要なEXEを別の場所に持っていくため、ここでパスをコピーしておくとよいです。
インストール先の「C:\Program Files (x86)\Windows Resource Kits\Tools」から「empty.exe」を「C:\Windows\System32」へコピーしてください。
STEP3.実行用VBS作成
実行用のVBSを作成し「C:\Windows\System32」に保存します。ファイル名は任意で構いません。ここでは「empty.vbs」としました。
Set epy = CreateObject("Wscript.Shell") epy.run "cmd /c empty.exe *",vbhide
STEP4.10分に一回自動実行させる
タスクスケジューラの機能を使います。検索で「task」と入れて表示されるタスクスケジューラを押します。
右ペインの[ 操作 ]-[ タスクの作成 ]からタスクを作成します。システムタスクと一緒にするのは気持ちが悪いので[ UserTask ]というフォルダを作成してその中でタスクを作成しています。
[ 全般 ] タブ
名前は任意で付けてください。ここでは [ ReleaseMem ] としました。「最上位の特権で実行する」にもチェックを入れます。
[ トリガー ] タブ
繰り返し間隔を10分、継続時間を無制限にします。繰り返し間隔は実行結果を見ながら調整していくといいと思います。
[ 操作 ] タブ
STEP3で作成したVBSを指定します。
実行できていることを確認する
タスクマネージャを起動し [ パフォーマンス ] タブを開きます。メモリを見ると85%ほど使用しています。
タスクスケジューラの管理で登録したタスクの「次回の実行時間」を見て実行のタイミングを確認しておきます。そのタイミングでもう一度タスクマネージャで見てみると・・・
うまくいきました。実行時には15%ほどメモリ使用率が低下しています。
終わりに
一昔前はデフラグツールもたくさんあってディスクを効率的に使うことにも一生懸命対策していました。近年メモリもディスクも大容量になりましたが私の使っているSarfaceなどの超薄型PCだとメモリやディスクの増設ができず今あるもので何とかうまくやっていくしかありません。
ディスクはSSDなので仮想メモリを設定しても効果が高いかもしれないですね。リモートワークを快適にできるよう、作業用のPCを今後も使いやすくしていきたいと思います!