サーバに負荷がかかるといわれている事柄
フォーラム鯖は、通常でも同時に10以上の広大なマップを運用しており、そこで行われる 数々のプレイングの処理のために、これまでも何度となく鯖の動作が重くなることが ありました。
その理由について、これまで検証や推測に基づくさまざまな情報がチャット上などで 流れてきましたが、それらの情報が流れて出所が行方不明になったりして、真偽不明の まま漂っているというような状態のものも見受けられるように思います。そこで、 自分の覚書もかねて、これまでの情報をとりあえず蓄積しておくページを作ってみました。
あくまで情報の蓄積を目的としていますので、このページを読む際には、以下のことに 気を付けてください。
- このページの情報には、「具体的なデータによる立証が行われた事実」「妥当な根拠に基づく推測」「原因はわからないが目に見える現象」が混ざる予定です。
- さらにこのページの情報には「重さの原因にならないと判断された行為」も混ざっているかもしれませんが、これは、なぜそう判断されたかを知るために残されているのだと思います。
- このページに書かれているからと言って、ただちにその行為が禁止されるというわけではありません。このページに書かれた理由を基に、特定の行為が公式に禁止されているケース(無許可STの稼働など)はもちろんありますが、そうではない、私的な要求の根拠とはしないでください。
なお、作成時点で付している解説は全部tmasgk26がテキトウに書いたものですので、指摘修正書き足し削除は大歓迎です。
チャンク関係
- 額縁に地図を張り付ける
額縁に貼り付けた地図が地図範囲のチャンク読み込みに際してチャンクを更新し続ける?ため、 大きな負荷がかかるとされています。そのため現在使用禁止になっています。
- 再生成後の資源ワールドでチャンクを開けまくる
チャンクを開けるときは当然そのチャンクのデータを1から作成するので処理量が増えます。 特に再生成明けの資源ワールドは一斉にチャンク開けが行われるため重くなりがちです。 これは仕方がないところかもしれません。
- 高度関係
MOB・エンティティ関係
- ALL値が高い
F3キーで分かるALL値は、付近のチャンクにいるMOBなどの数を表しています。 MOBが多いと、その動作を常に計算するため、それだけ重くなると考えられます。
- MOBを狭いところに閉じ込める
MOBとMOBの接触判定(ぶつかったMOB同士の動きの計算)処理は、MOBが2匹だと2回で 済みますが、3匹がぶつかると6回、4匹だと12回、5匹だと20回・・・と匹数が増えると 飛躍的に計算量が多くなります。狭いところではそれだけ接触しやすく、また接触して 跳ね返ったものがさらに接触する悪循環に陥るので、計算量だけでなく計算頻度も多くなります。 経験値トラップが重くなるのも、これが一因とされています。
- /spawn せず /ent で移動する
/spawn コマンドでワープすると、ワープ前の場所の周辺(チャンク)にいたMOBは消滅 (デスポーン)しますが、 /ent コマンドでワープすると、ワープ前の場所の周辺(チャンク)に いたMOBは保存(動きが凍結)されます。そのため、MOBが溜まりやすくなるようです。 ただし /spawn でワープした場合でも、アイテムを拾ったMOBは消滅しないようです。
- アイテムを大量にドロップする
グラウンド・エコ
チェスト関係
- チェスト
チェストには27枠の、ラージチェストになると54枠のインベントリがあるわけで、 それぞれの枠に何がどれだけ入っているか(あるいは何も入ってないか)という情報を 管理している分、同じオブジェクトとしては土や丸石よりもチェストのほうが データサイズ(もしくはデータ処理量)は大きいかもしれません。
- トラップチェスト
- 保護されたチェストとフリーチェスト
cprivateなどで保護がかかったチェストより、フリーチェストのほうが重いという 話があります。特に鯖で導入時に変更をしていない場合、LWCはSQLiteで管理し、 WGはテキスト形式で管理しているようなので、フリーチェストにしてWGによる 管理のみに委ねる場合は重くなることが考えられます。
- ホッパー
チェストほどではないにせよ、ホッパーにも枠が5つあり、またホッパー自身は アイテムの流入排出を常に監視していると思われるので、重くなるようです。 実際、初期(2013年10月頃以前)に設置されたホッパーを撤去することでtpsが 劇的に改善されたという報告がありましたので、一度撤去してみることを お勧めします。
ブロック関係
- 麦などの、背後が透明なブロック
- 溶岩流や水流
- 光の量の再計算
その他
- 放置する
- 製鉄所
いわゆる製鉄所については、複数の要因が複合するからと考えられます。 たとえば、村人同士の接触判定、MOB数、ゴーレムを流す水流など。そしてそれらは、 村人の接触を防ぐ設備や周辺の湧きつぶしなどで、ある程度軽減できると考えられます。