Rustサーバーが重いときの原因と対策、最適化の設定
結論: サーバーコンソールにserverinfoと入力すると、サーバーのFramerateとEntityCountが見られます。Rustサーバーは、動かすものが増えると遅くなります。ワールド内の建物とアイテムが増える、マップが大きくなってスポーンが増える、NPCとプラグインが増える、などです。以下の設定が、それぞれを制御します。ティックレートの設定は、デフォルトのままにしてください。
サーバーの調子を見る
Section titled “サーバーの調子を見る”| コマンド | 表示されるもの |
|---|---|
serverinfo | Framerate、EntityCount(ワールドにあるすべて)、Players、Memory、NetworkInとNetworkOut、Uptime。 |
server.fps | サーバーのフレームレートだけ。 |
サーバーコンソール、RCON経由、または管理者としてF1コンソールに入力します。Crucible Local Serverでは、サーバーが稼働中のあいだ、Quick viewのフレームレートタイルが同じ数値を表示します。
ラグが起きている最中にフレームレートを見てください。落ちているなら、サーバーが自分の処理で苦戦しているので、このページの残りが当てはまります。安定しているなら、ネットワークやプレイヤー自身のPCを疑ってください。
フレームレートの上限
Section titled “フレームレートの上限”fps.limitは、サーバーが1秒に動かす最大のフレーム数です(Rustは240と表示します)。下げると、同じPC上のほかのもの、たとえば2台目のサーバーのためにCPUが空きます。すでに上限より下で動いているサーバーには、何の効果もありません。
ティックレート: 触らない
Section titled “ティックレート: 触らない”| 設定 | デフォルト | 内容 |
|---|---|---|
server.tickrate | 10 | サーバーがRCON、Rust+、接続の確認を、1秒に何回処理するか。ゲームがなめらかに動くようにはなりません。 |
player.tickrate_sv | 16 | サーバーが各プレイヤーを1秒に何回更新するか。Rustは16から128を許可していて、上げるたびに、オンラインの全プレイヤー分の負荷が増えます。 |
エンティティ数
Section titled “エンティティ数”建築ブロック、設置物、落ちているアイテム、死体、動物、樽はすべてエンティティで、サーバーはそのすべてを把握して保存します。ワイプの間にプレイヤーが建てるにつれ、数は増えていきます。
| 設定またはコマンド | デフォルト | 内容 |
|---|---|---|
server.itemdespawn | 300 | 落ちているアイテムが消えるまで地面にある基本の秒数。もっと長く残るアイテムもあります。 |
server.corpsedespawn | 300 | 死体が残る秒数。 |
entity.countby <steamid> | あるプレイヤーが置いたものをすべて数えます。 | |
entity.deleteby <steamid> | あるプレイヤーが置いたものをすべて破壊します。元に戻せません。 |
腐敗は、誰も手入れしない建物を劣化させるもので、放置された拠点をマップから消す仕組みです。decay.scale 0だと何も腐敗しないので、すべての拠点がワイプまで残り、エンティティ数は増える一方です。長いワイプでは腐敗をオンにしておいてください。設定は腐敗の止め方にあります。
マップサイズとスポーン
Section titled “マップサイズとスポーン”Rustは、鉱石ノード、植物、拾えるもの、動物を、面積に応じてマップに配置します。スポーンの種類ごとに密度が決まっていて、Rustは置ける土地全体でその密度を目指します。マップが大きいほど、すべてが増え、サーバーが動かすものも増えます。Rustは一部のスポーンの種類を、4000mのマップの面積で頭打ちにします。サイズの選び方はRustのマップサイズにあります。
| 設定 | デフォルト | 内容 |
|---|---|---|
spawn.max_density | 1 | マップが抱えるスポーンの種類ごとの量を倍率で調整します。0.5なら半分。 |
spawn.min_density | 0.5 | プレイヤー数に連動するスポーンの種類は、空のサーバーではここから始まり、人が増えるにつれてspawn.max_densityまで上がります。 |
spawn.tick_populations | 60 | スポーンのラウンドの間隔(秒)。数字が大きいほど、マップの補充が遅くなります。 |
| 設定 | 内容 |
|---|---|
ai.npc_enable false | モニュメントとジャンクパイルに科学者がスポーンせず、Rustがモニュメントのナビメッシュの構築を飛ばすので、サーバーの起動が早くなります。動物はスポーンします。 |
aimanager.nav_disable true | Rustがナビメッシュをまったく作らないので、サーバーの起動がずっと速くなりますが、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のアップデートをインストールできます。サーバーを自動再起動するを見てください。
Crucible Local Serverでは
Section titled “Crucible Local Serverでは”コンフィグタブのパフォーマンス設定:
- **AIナビメッシュをスキップ (起動が高速化)**は、上の
aimanager.nav_disableです。起動がずっと速くなりますが、NPCと動物は動きません。 - 高優先度は、ほかのアプリが動いているときに、サーバーにより多くのCPUを与えます。
- **CPUコア数 (詳細)**は、サーバーを一覧にしたコアに固定します。たとえば
0-7です。空欄なら、すべてのコアを使います。
同時に動かすサーバーが1台増えるごとに、実際のRAMとCPUを消費します。複数のサーバーの同時起動を許可が標準でオフなのはそのためです。サーバー設定を見てください。
- このページのすべての設定をデフォルト値つきで載せたRustサーバー変数
- Rust管理者コマンド
- 最大プレイヤー数の変え方
- Rustのカスタムマップをサーバーで公開する方法
