PCを新しくしてから快適そのものなのですが、1つだけ、気になる問題が発生していました。
それは、SpotifyやAmazon Prime Musicを聴いていると、時々(1~数分間に1回程度)音が瞬断されてしまう、という問題です。
サウンドデバイスは、USB接続のADI-2 DAC Fsを使用しており、旧PCでは発生していない問題だったので、原因を探して解決することにしました。
不具合の原因を絞り込む
音が瞬断されてしまうタイミングで何が起こっているのか確認するため、負荷をかけたり、タスクマネージャーを確認したり、USB端子を変えてみたりといろいろ試してみました。
調査しているうち、瞬断するタイミングでマウスカーソルの動きも一瞬引っかかったような状態になることが分かりましたので、どうやらその瞬間だけ負荷がかかっているように思われます。
タスクマネージャーで負荷を確認
音が瞬断するタイミングで何が起こっているのか確認するため、タスクマネージャーを開き、CPU負荷をモニターすることにしました。
すると、瞬断するタイミングでCPU負荷が一気に上がっている状況を確認できました。
となると、何かバックグラウンドで走っているアプリケーションが悪さをしている…?
しかし、タスクマネージャーでは一瞬だけ負荷が上がるアプリケーションを特定することは難しいため(すぐに表示が切り替わってしまう)、パフォーマンスモニターを使ってログを取得することにします。
パフォーマンスモニターで負荷を調べる
Windowsのパフォーマンスモニターを使うと、プロセスごとにCPU負荷をログとして残すことが可能です。
設定方法は以下のサイトに詳しく説明が載っています。
一瞬だけ負荷が上がるので、取得間隔を15秒→1秒に変更してログ取得を行いました。
生成されたログはそのままでは使えないので、CSV形式に変換します。
CSVに変換するにはコマンドラインを使用します。
詳細は以下のサイトをご確認ください。
変換したCSVをExcelで開きます。
そのままでは見づらいので、全体をコピーしてから、行・列を入れ替えて新しいシートにコピペします。
あとは、瞬断が起こったタイミングのデータを探し、負荷が上がっているプロセスを特定します。
原因が分からない…
ログを分析してみましたが、瞬断が発生したタイミングでsvhostを含め、様々なアプリケーションのCPU負荷が一瞬上がって、すぐに数%に戻る、という謎な挙動を示してました。
1つのアプリケーションの負荷が上がるのであれば特定もできるのですが、複数のアプリケーションとなると原因が分かりません。
どうしたことか…と悩んでいたところ、たまたま開いていたデバイスマネージャーで怪しい動きを確認し、問題解決に繋がりました。
デバイスマネージャーを確認する
デバイスマネージャーを開いて見ていたところ、瞬断が発生するタイミングで、デバイスマネージャーの表示がリフレッシュされる、という問題が発生していることを確認しました。
デバイスマネージャーの表示がリフレッシュされるのは、デバイスを取り外したり、取り付けたりと、構成に変更があった場合です。
しかし、デバイスツリーを展開して見ていても、増えたり減ったりするデバイスはありません。
そうなると、デバイスの特定も難しいので原因はやっぱり分からないか…と思っていたのですが、たまたまモニターに繋がるケーブルの配線をまとめていたところ、ケーブルに触れるとデバイスマネージャーの表示がリフレッシュされることを確認しました。
問題はここだったのか…!
ついに、音が瞬断される原因を特定!
KVM機能付きのモニターなので、キーボード、マウスなどのUSBデバイスをモニター経由でPCに接続しています。
モニター側のUSB入力はType-Cで、モニターに付属したケーブルを使って接続していたのですが、ケーブル側のコネクタが接触不良を起こしているようで、ケーブルに触れると一瞬接続が途切れ、すぐに復旧するという挙動となっていました。
接触不良によるUSB切断が一瞬発生することが原因でマウスが引っかかるような挙動になり、USB機器を認識する処理でCPU負荷が上がっていることが原因でした。
USBケーブルを交換したところ、瞬断する問題は見事に解決できました。

モニターとの接続には、USBケーブルとしても最高規格であるThunderbolt4対応ケーブルを使用してみました。
いやー、まさかUSBケーブルが問題だとは思いませんでした。
そういうこともあるよ、ということで情報共有でした。
コメント