コンテンツにスキップ

Rustサーバーが重いときの原因と対策、最適化の設定

結論: サーバーコンソールにserverinfoと入力すると、サーバーのFramerateとEntityCountが見られます。Rustサーバーは、動かすものが増えると遅くなります。ワールド内の建物とアイテムが増える、マップが大きくなってスポーンが増える、NPCとプラグインが増える、などです。以下の設定が、それぞれを制御します。ティックレートの設定は、デフォルトのままにしてください。

コマンド表示されるもの
serverinfoFramerate、EntityCount(ワールドにあるすべて)、Players、Memory、NetworkInとNetworkOut、Uptime。
server.fpsサーバーのフレームレートだけ。

サーバーコンソール、RCON経由、または管理者としてF1コンソールに入力します。Crucible Local Serverでは、サーバーが稼働中のあいだ、Quick viewのフレームレートタイルが同じ数値を表示します。

ラグが起きている最中にフレームレートを見てください。落ちているなら、サーバーが自分の処理で苦戦しているので、このページの残りが当てはまります。安定しているなら、ネットワークやプレイヤー自身のPCを疑ってください。

fps.limitは、サーバーが1秒に動かす最大のフレーム数です(Rustは240と表示します)。下げると、同じPC上のほかのもの、たとえば2台目のサーバーのためにCPUが空きます。すでに上限より下で動いているサーバーには、何の効果もありません。

設定デフォルト内容
server.tickrate10サーバーがRCON、Rust+、接続の確認を、1秒に何回処理するか。ゲームがなめらかに動くようにはなりません。
player.tickrate_sv16サーバーが各プレイヤーを1秒に何回更新するか。Rustは16から128を許可していて、上げるたびに、オンラインの全プレイヤー分の負荷が増えます。

建築ブロック、設置物、落ちているアイテム、死体、動物、樽はすべてエンティティで、サーバーはそのすべてを把握して保存します。ワイプの間にプレイヤーが建てるにつれ、数は増えていきます。

設定またはコマンドデフォルト内容
server.itemdespawn300落ちているアイテムが消えるまで地面にある基本の秒数。もっと長く残るアイテムもあります。
server.corpsedespawn300死体が残る秒数。
entity.countby <steamid>あるプレイヤーが置いたものをすべて数えます。
entity.deleteby <steamid>あるプレイヤーが置いたものをすべて破壊します。元に戻せません。

腐敗は、誰も手入れしない建物を劣化させるもので、放置された拠点をマップから消す仕組みです。decay.scale 0だと何も腐敗しないので、すべての拠点がワイプまで残り、エンティティ数は増える一方です。長いワイプでは腐敗をオンにしておいてください。設定は腐敗の止め方にあります。

Rustは、鉱石ノード、植物、拾えるもの、動物を、面積に応じてマップに配置します。スポーンの種類ごとに密度が決まっていて、Rustは置ける土地全体でその密度を目指します。マップが大きいほど、すべてが増え、サーバーが動かすものも増えます。Rustは一部のスポーンの種類を、4000mのマップの面積で頭打ちにします。サイズの選び方はRustのマップサイズにあります。

設定デフォルト内容
spawn.max_density1マップが抱えるスポーンの種類ごとの量を倍率で調整します。0.5なら半分。
spawn.min_density0.5プレイヤー数に連動するスポーンの種類は、空のサーバーではここから始まり、人が増えるにつれてspawn.max_densityまで上がります。
spawn.tick_populations60スポーンのラウンドの間隔(秒)。数字が大きいほど、マップの補充が遅くなります。
設定内容
ai.npc_enable falseモニュメントとジャンクパイルに科学者がスポーンせず、Rustがモニュメントのナビメッシュの構築を飛ばすので、サーバーの起動が早くなります。動物はスポーンします。
aimanager.nav_disable trueRustがナビメッシュをまったく作らないので、サーバーの起動がずっと速くなりますが、NPCも動物も動けません。建築用かテスト用のサーバー専用です。

どちらもserver.cfgか起動行に設定して、サーバーの起動時点から反映されるようにします。Rustのserver.cfgの例を見てください。

プラグインはそれぞれ独自のコードをサーバー上で実行し、重いプラグインが1つあるだけで、全員のフレームレートが下がることがあります。o.plugins(Oxide)かc.plugins(Carbon)で、読み込まれているものが一覧できます。重いものを見つけるには、プラグインをoxide/pluginsかcarbon/pluginsフォルダから1つずつ外し、再起動して、フレームレートを見ます。Crucible Local Serverでは、プラグインはModsタブで管理します。MODとプラグインを見てください。

server.saveinterval(600)は、ワールドを保存する間隔(秒)で、保存のたびにワールド内のすべてのエンティティが書き込まれます。エンティティが多いワールドは保存に時間がかかるので、極端に小さくしないでください。

スケジュール再起動は、長く動いているサーバーをまっさらな状態から始め直させます。Crucible Local Serverは、毎日のスケジュールで再起動し、停止中にRustのアップデートをインストールできます。サーバーを自動再起動するを見てください。

コンフィグタブのパフォーマンス設定:

  • **AIナビメッシュをスキップ (起動が高速化)**は、上のaimanager.nav_disableです。起動がずっと速くなりますが、NPCと動物は動きません。
  • 高優先度は、ほかのアプリが動いているときに、サーバーにより多くのCPUを与えます。
  • **CPUコア数 (詳細)**は、サーバーを一覧にしたコアに固定します。たとえば0-7です。空欄なら、すべてのコアを使います。

同時に動かすサーバーが1台増えるごとに、実際のRAMとCPUを消費します。複数のサーバーの同時起動を許可が標準でオフなのはそのためです。サーバー設定を見てください。