快適な1PCゲーム配信のために負荷を計測しよう

スポンサーリンク
みなさんこんにちは。TeXTeXです。
今回は1PCでのゲーム配信の設定での負荷を計測する方法を以前のブログの記事から転載します。
YouTubeなどの動画サイトで動画投稿をしている方は(私もそうですが)結構な数いらっしゃると思います。
理由はまちまちで、「小遣いを稼ぎたい」「自分が見たい動画が少ないし作っちゃえ」「ちやほやされたい」「ゲームを広めたい」「作ること自体が趣味」「なんとなく」などと色々あると思いますが(ちなみに私は2つ目の理由)、その理由を問わず動画投稿をしている人は「配信もしてみたいな~」なんて思ったこともあるはず。
でも配信はPC1台だとスペック的にもハードルが高そうだし、手を出しにくいといのも事実。だからやってはみたいけど結局手を出さずじまいという方も多いことでしょう。
だけれどそれはもったいない。配信テストするだけならタダだし、誰かに見られることもない。ちょっとばかり準備に時間がかかるのと電気代をもっていかれるだけ。
「それならばやっちゃおう。テストしてみよう。」
そう思いませんか?
ということで怪しい広告のような流れにはなってしまいましたが、配信しながらのパフォーマンステストの方法を書いていこうかと思います。

 
広告

 

 

パフォーマンステストに使うツール

パフォーマンステストで計測したい項目は人によるが、ゲーム及び配信に影響をあたえるファクターとして監視したいのは
    1. CPU負荷

    1. メモリ使用率

    1. ネットワークの上り速度

    1. ネットワークの下り速度

    1. GPU負荷

の5つだろう。この項目のうち「GPU負荷」を除く4つはWindowsに標準搭載されている計測ツール「パフォーマンスモニター」にてログの取得が可能である。(なお書き出されるファイルは専用のblgファイルであるがcsvに変換するのも可能)
しかしGPU負荷に関しては(たぶん)CPUと同じようには計測ができないので別のアプリケーションを使う。使用するのはELSA社のELSA System Graph。これはELSAのアプリケーションではあるが恐らくメーカー問わず使える。(ただしGeForceのみ)なおこちらのログはcsvファイルで出力される。

 パフォーマンスモニターの設定と使い方

設定

パフォーマンスモニターの設定について書く。
まずはWindowsキー+Rで「ファイル名を指定して実行」を呼び出し「perfmon」と入力して実行。「パフォーマンスモニター」を起動する。
起動したら左のコンソールツリーより「データコレクターセット」→「ユーザー定義」を右クリックし「新規作成」→「データコレクターセット」
次のようなインターフェイスが表示されるので名前欄に分かりやすい名前を入力し「手動で作成する」にチェックを入れ次へ。
含めるデータセットを聞かれるので「パフォーマンスカウンター」にチェックで次へ。
パフォーマンスカウンターの設定を求められるので、まずはサンプルの間隔を任意に入力する。詳しくデータを取りたいなら1秒ごとに、おおまかにわかれば良いのなら5~10秒程度に設定すれば良い。
それが出来たら「追加」をクリック。
以下のようなインターフェイスが表示されるので
・Memory, %Committed Bytes In Use
・Network Interface, Bytes Received/Sec, 「使用してるインターフェイス」
・Network Interface, Bytes Sent/Sec, 「使用してるインターフェイス」
・Processor, %Processor time, _Total
をそれぞれ追加し「OK」をクリック。
先程の画面に戻るのでこれまた「次へ」をクリック。
するとデータ保存場所を聞かれるので任意の場所を指定。(長時間データログを取る場合わりかしファイルサイズは大きくなるので空き容量の多いストレージを推奨。といっても今回は取得する値も少ないのでそこまでではないが)
「次へ」をクリックし、「保存して閉じるから」を選択して完了。
すると以下のように新しくプリセットが作成されているので、選択して「右クリック」→「開始」で測定を開始し「停止」で終了する。

閲覧

測定したデータを閲覧する方法。
これには2通りあり、1つ目はパフォーマンスモニターで閲覧する方法。2つ目はcsvファイルに変換し、ExcelなりRなりで表示する方法。
2つ目は詳しくは書かないが、こちらを参考にcsvファイルに変換して後は好きにすれば良い。
1つ目の方法に関しては、コンソールツリーから「モニターツール」→「パフォーマンスモニター」を選択する。するとリアルタイムのパフォーマンスが表示されるが、見たいのはログデータなので、グラフのすぐ上にあるアイコンの左から2番目「ログデータの表示」をクリック。「データソース」を「ログファイル」に変更し、先程保存したフォルダから出力ファイルを持ってくる。後は閲覧したい時間を設定し(初期だと計測における全範囲)「OK」
このままでは表示されない項目もあるので、「+」マークのアイコンからパフォーマンスカウンターを追加したときと同様に項目を追加する。
完了すると以下のようにデータログが表示される。(ちなみにデータはYouTubeで4K動画を再生した際のもの。全部の項目を表示すると見切れるものもあるので都度調整)

 

ELSA System Graphの設定と使い方

次はESG(勝手に省略)の使い方。
ELSA System Graphをダウンロード。
適当な場所に解凍。
ELSA System Graph.exeを実行。
以下のようなインターフェイスが表示されるので「CSV出力」にチェックを入れ、保存先と名前を指定する。
設定項目が表示されるので計測するGPUを選択し、測定項目を選ぶ。測定項目は「GPU Load」と「Memory Usage」でも測定しておけば十分。(まあ「Memory Usage」すら無くても構わない)後は任意で選択。
「ログ取得時間間隔」に関してはパフォーマンスモニターと同じ値にしておくのが無難。
できたら「CSV出力」をクリック。
するとDOS窓が開くとともに勝手に計測が始まり、DOS窓を閉じれば終了する。
ESGの出力はCSVファイルなので好きなアプリケーションでグラフ化すればOK。
ただし、開始からの経過時間は(多分)記録されないので、自分で追加すると良い。
なお以下は適当に負荷をかけた時のグラフ。(明らかにサーマルスロットリングが効いてるっぽいwこれを見るともうちょっと冷却能力に定評があるのを買えばよかったかなと思うとともに、2年も元気だし多少の性能差を気にしないなら安いモデルでも良いんじゃないかとも思える。次のグラボを買う際に色々と参考になりそう)

 

どう評価するか

さて、重要なのはこの測定データをどう評価するか。
以下、参考までに私のテスト時の負荷グラフを貼り、軽く考察してみる。
ちなみに私のPCスペックはYouTubeチャンネルの概要に書いてあるが、超簡単に書くと
【CPU】Ryzen 7 1700(3.6GHz OC)
【GPU】GTX970
【Mem】DDR4 16GB
である。配信に使うソフトはOBS Studioで設定は
【解像度】1080p
【フレームレート】30fps
【ビットレート】5Mbps
【エンコーダ】x264
ゲームはWar Thunderで設定はカスタムでAll MAX
・CPUプリセット:faster プロファイル:high

・CPUプリセット:medium プロファイル:main
以上のようになる。
まず考察しやすいのはGPU。配信設定によらずプレイ中のGPU使用率は60%~90%ほどでたまに100%に近い値となっている。これはフレームレートのロックを掛けていないためかなり高い使用率ではある。OBSの配信設定を上げた場合GPU負荷が5~10%上昇しているのが見て取れるが、その際のプレイマップが違うので関係性についてはなんとも言えない。また配信には関係ないが、GPU使用率が90%に近い値を取るとすぐに急落しているのがわかる。これは負荷が高くなると温度が上昇しサーマルスロットリングが働き使用率が低下、それによって温度が下がるとロックが外れ再び使用率が上昇のループが発生していると思われる。まあ今回の話題とは関係ないのであまり深くは考えない。
次にメモリ。これも配信開始とともに80%弱まで上がり、そこから緩やかな線形上昇傾向を見せている。もしかしたら長時間配信では90%近い値になるかもしれない。測定時にはブラウザのメモリ使用量が2GBととっちらかっていたので整理すれば問題ないだろう。また、上昇率は1時間に5%強と推察されるが長時間配信でどのように振る舞うかは分からないので要チェック。
最後にCPU。低負荷配信の場合基本的に40%前後で安定しており、高負荷配信時には50%前後の値を記録している。ただし高負荷配信時には最大で70%弱と15%以上使用率が飛び跳ねている場所があり(最後の使用率の急増は配信終了時の処理によるものなので除外)、安定性という点では少し不安が残る。それでもCPU使用率が70%を切っているため高負荷配信でもCPU使用率の問題はなさそうである。
最終的に、メモリに不安は残るが「CPUプリセット:medium プロファイル:main」で配信しても問題なくプレイ・配信が出来るだろうことが推察される。ただし、この負荷分だけの画質の変化が配信画面で見られるかというと疑問なので、電気代を考えれば「CPUプリセット:faster プロファイル:high」のプリセットかふたつの中間の設定あたりが落としどころだと考えられる。
あ、ちなみにここでは考察していないが、ネットワークの負荷を見る際は自分が配信しよう目論んでいる時間にテストをしてデータを取ってこないと無意味。注意。(上記ではテストをしたのは日曜の夕方で配信予定の時間でないため考察できなかった)
と、こんな感じに自分で配信の画質設定を煮詰めていった。
同じPC構成で同じゲームを配信している人の配信設定を参考にしようと、ネットの海をひたすらサーフィンしてる暇があるなら自分で設定を考えたほうが早い。その設定を探す際にこれらの計測アプリケーションのデータを読むのは必要不可欠といってもよいので以上の記事を参考に設定を煮詰めて欲しい。
以上。

コメント

タイトルとURLをコピーしました