メインPCの調子が悪いので、エラーを潰していく。

こんにちは、kanatoです。

最近メインPCの調子が悪いんです。本当に。

使い方がPCに合っていないという部分もあるんだと思いますが・・・。一応FXでMT4を動かしており、さらにPoSの仮想通貨のマイニングを実施していますので、常時ある程度の負荷がかかっているような状態です。ですので、最低でも1週間は連続運転をしているようなところです。

そんな中で、気が付くといつの間にか止まっているといったような事件が最近多く起きています。ブルースクリーンでもなく、イベントビューアにもほとんど異常がない。フリーズしているので、結局は電源長押しで対応するしかないのですが、やっぱりいつの間にかフリーズしているのは色々と不都合があるので、対策を取っていくことにしました。

まずは、イベントビューアに出ていたエラーを潰していくことにしました。ちなみに、下の画像がこれまでのエラーの時の管理イベントですが、フリーズがおそらく15:15くらいに起きていて、それに気づいて強制終了させたのが15:50ころになっています。なので、15:50以降のイベントは強制終了の結果出てきたエラーだと考えています。Kernel-Power(重大)もその結果ですね。

注目したエラーはPerflib 1023、PerfNet 2004です。これまでも結構な頻度で出てはいたのですが、システムに影響はないとのことだったので放置していたのですが、本当かどうかわからなくなってきたので、対処していきました。

ここからは完全に私の備忘録的になってしまいますので、ご了承ください。

Perflib 1023

エラーイベント

エラーはこんな感じです。

イベントには「DLL “C:\WINDOWS\system32\sysmain.DLL" を読み込めません」と記載されていました。以前にsysmainを切ってしまったからでしょうか。

対処したこと

色々とGoogle先生で調べていたところ、下記のサイトに行きつきました。

Perflibのエラーについての解決記事ですが、この中の「パフォーマンスカウンタの再構築」を実施したところ、エラーが消えていました。まあ、結果OKということで・・・

Windows PowerShell(またはコマンドプロンプト)を管理者モードで起動して以下のコマンドを実行する。

lodctr /R

PerfNet 2004

エラーイベント

イベントには「データセクションの最初の4バイト(DWORD)に、状態コードが含まれています。」と記載されていました。まあ、この時点で意味は分かっていないのですが・・・

対処したこと

こちらもGoogleで検索していたところ、こちらのウェブサイトに行きつきました。エラー自体は問題ないので、パフォーマンスカウンターを向こうにしてしまおうということですね。これでエラーは出なくなりました。

一般的に性能を取得しないシステムならこのエラーは無視していても問題ないと思います。
もしエラーが記録されるのが気になるなら、この機能を無効化することによりエラー記録を止めることが可能です。
そのレジストリを紹介します。

キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfNet\Performance

値:
Disable Performance Counters (DWORD 32ビット値)

1でパフォーマンスカウンタを無効化
0でパフォーマンスカウンタを有効化

1を設定することによりイベントログに出力されなくなります。再起動後に有効となります。

最後に

ということで、最近メインPCの調子が悪いので、エラーを潰していこうと思い、実施してみました。ただ、エラーは出なくなったものの依然として警告は多いですし、やっぱりたまに止まってしまいます。どうしたらいいんでしょうか?

正常化への道はまだ少しかかりそうです。