Valheim Dedicated Server × Crossplay 環境のマルチプレイ鯖を運用する経験があったのですが、その際に鯖を安定化・強化するために行ったことを備忘録としてまとめます。
-crossplay オプションとは
Dedicated Server に -crossplay を付けると、バックエンドが Steamworks ではなく PlayFab になります。
本来はマルチプラットフォームで遊ぶための設定ですが、Dedicated Server 運用では次のようなメリットがあります。
- ルーターの Port Forwardingや明示的なポート開放をせずにサーバーを立てられる(Crossplay の仕様)
- ゲーム内の Join Code / サーバーリストで入れるので、参加者が楽(IPアドレスを配らなくても良い)
私の鯖の場合も、全員 Steam ユーザーでしたが、上記のメリットのために -crossplay を ON にしていました。
以下のように -crossplay オプションを起動 bat ファイルに追加
サーバー名やパスワードは適宜変更してください。
valheim_server -nographics -batchmode -name "My server" -port 2456 -world "Dedicated" -password "secret" -crossplay
鯖を安定化・強化
やったことをまとめます。
PCスペック等になるべく依存しなそうな設定から徐々に試していったので、上から試すのが良いです。
いきなり全部試すと、もし何かあった時に原因の切り分けができないのでオススメしません。
起動オプションに /abovenormal を追加
プロセスの優先度を「通常」より上げます。
Valheim のクライアントとサーバーを同じPCで同時に動かす人がほとんどだと思うので、サーバーを少しだけ優先しておきます。
start "" /abovenormal valheim_server -nographics -batchmode -name "My server" -port 2456 -world "Dedicated" -password "secret" -crossplay
起動オプションに -savedir/-logFile を追加
saveデータやlogファイルを保存するフォルダは、可能なら高速なSSDに置くのが良いです。(例えば CPU 直結の M.2スロットに挿している SSD など)
また、それらのフォルダは Windows Defender などのウイルススキャン対象外にするのがオススメです(セーブ/ログ出力のたびにスキャンが走って重くなる可能性があるため)。
保存するフォルダは自分が分かりやすい場所にしてください。
start "" /abovenormal valheim_server -nographics -batchmode -name "My server" -port 2456 -world "Dedicated" -password "secret" -crossplay -savedir "C:\Users\hogehoge\AppData\LocalLow\IronGate\Valheim" -logFile "C:\Users\hogehoge\AppData\LocalLow\IronGate\Valheim\server.log"
boot.config に設定を追加
Valheim dedicated server/valheim_server_Data/ 配下にある boot.config に memorysetup-* 系の Unity memory allocator オプションを追加します。
狙いは「割り当てブロック(初期予約)を増やして、特定タイミングのスパイクや断片化を減らせないか」を試すことです。
コピペできるプリセット
私が徐々に設定値を強化していった際に、実際に試した設定です。
手順:
- 既存の
boot.configをコピーしてバックアップ(例:boot-backup.config) boot.configを編集して以下で紹介する設定を追加- サーバー再起動
- 起動ログの
[UnityMemory] Configuration Parameters - Can be set up in boot.config一覧で反映確認
※ 注意として、デフォルトで設定されている gfx-threading-mode や build-guid などの設定を上書きしないように注意してください。
あくまで、memorysetup-* を追加するだけです。
プリセット1
まずはお試し(常時メモリ増は控えめ)
boot.config の末尾にこれを追記:
memorysetup-main-allocator-block-size=33554432
memorysetup-thread-allocator-block-size=33554432
memorysetup-cache-allocator-block-size=8388608
memorysetup-typetree-allocator-block-size=4194304
memorysetup-temp-allocator-size-main=8388608
memorysetup-job-temp-allocator-block-size=4194304
memorysetup-job-temp-allocator-block-size-background=2097152
memorysetup-allocator-temp-initial-block-size-main=524288
memorysetup-allocator-temp-initial-block-size-worker=524288
memorysetup-temp-allocator-size-background-worker=65536
memorysetup-temp-allocator-size-job-worker=524288
memorysetup-temp-allocator-size-preload-manager=524288
プリセット2
ほとんどの人はこれで十分なはず
boot.config の末尾にこれを追記:
memorysetup-main-allocator-block-size=67108864
memorysetup-thread-allocator-block-size=67108864
memorysetup-cache-allocator-block-size=16777216
memorysetup-typetree-allocator-block-size=8388608
memorysetup-temp-allocator-size-main=16777216
memorysetup-job-temp-allocator-block-size=8388608
memorysetup-job-temp-allocator-block-size-background=4194304
memorysetup-allocator-temp-initial-block-size-main=1048576
memorysetup-allocator-temp-initial-block-size-worker=1048576
memorysetup-temp-allocator-size-background-worker=131072
memorysetup-temp-allocator-size-job-worker=1048576
memorysetup-temp-allocator-size-preload-manager=1048576
プリセット3
さらに強化したい人向け。
常時メモリ消費を増やすため、RAM が少ないなど PC スペックに余裕がない場合は逆に悪化する可能性があります。
boot.config の末尾にこれを追記:
memorysetup-bucket-allocator-block-size=33554432
memorysetup-bucket-allocator-block-count=3
memorysetup-main-allocator-block-size=134217728
memorysetup-thread-allocator-block-size=134217728
memorysetup-cache-allocator-block-size=33554432
memorysetup-typetree-allocator-block-size=16777216
memorysetup-temp-allocator-size-main=33554432
memorysetup-job-temp-allocator-block-size=16777216
memorysetup-job-temp-allocator-block-size-background=8388608
memorysetup-allocator-temp-initial-block-size-main=2097152
memorysetup-allocator-temp-initial-block-size-worker=2097152
memorysetup-temp-allocator-size-background-worker=262144
memorysetup-temp-allocator-size-job-worker=2097152
memorysetup-temp-allocator-size-preload-manager=2097152




