差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
server:load:tps [2014/06/13 13:01] gappoi18450 |
server:load:tps [2017/02/13 23:36] (現在) gorou12 tpsdraftを昇格、これまでのは引っ越して置き換え |
||
---|---|---|---|
行 1: | 行 1: | ||
- | **####TPSとは?####**\\ | + | ===== TPSとは? |
- | \\ | + | |
- | この解説は『現実の時間の進み方と、マインラフト内の時間の進み方は必ずしもイコールでは無い』\\ | + | |
- | と言うことを前提としてお読み頂ければ理解しやすいかと思います。\\ | + | |
- | \\ | + | |
- | TPSとはTicks Per Secondの略称です。\\ | + | |
- | マインクラフト内の時間経過はこのTPSを基準にしており、\\ | + | |
- | TPS20(現実の1秒間に20回処理を行う)は丁度マインクラフト内の1秒と現実の1秒が等しくなる値です。\\ | + | |
- | \\ | + | |
- | つまりTPSが20より低い値であれば現実の1秒間に対してマインクラフト内の時間の進み方は遅くなり、\\ | + | |
- | 反対に20を超えた値だと現実の1秒間に対してマインクラフト内の時間の進み方は高速になります。\\ | + | |
- | ※基本的にはTPSが20を超える値にはならぬようマインクラフト内では制御されています。\\ | + | **TPS**とは、 |
- | ※一時的な跳ね上がりでTPS20を超える場合もあります。\\ | + | |
- | \\ | + | |
- | このTPSの値はサーバー負荷の目安の値でもあり、サーバーに負荷がかかるとこのTPSの値が下がり、\\ | + | |
- | サーバー内の時間経過は、負荷が大きくなるほど遅くなります。\\ | + | |
- | 節電鯖では”/ | + | |
- | ---- | + | |
- | \\ | + | |
- | 1Tickとは1回の処理を指します。TPS20の時は現実の1秒間に20回処理が行われていることを示し、\\ | + | |
- | これは丁度マインクラフト内の時間も1秒進むことになる数値です(現実の1秒=マインクラフト内の1秒) | + | |
- | {{ : | + | |
- | \\ | + | |
- | \\ | + | |
- | 負荷がかかり1Tickに時間がかかると現実の1秒間に実行できる処理の回数は少なくなってしまい、\\ | + | |
- | マインクラフト内のTickを基準としたコンテンツは実行に時間を要するようになります。\\ | + | |
- | 以下の図は例えとして、TPSが5の場合を示した図です。\\ | + | |
- | {{ : | + | |
- | \\ | + | |
- | 【例】TPSが5(正常時の1/ | + | |
- | ---- | + | 端的にいうと、TPSはサーバー機の処理能力の指標です。 |
- | \\ | + | |
- | {{:server: | + | (このページは2017/ |
- | \\ | + | |
- | 【図】サーバーへの負荷とTPS値の推移のイメージ\\ | + | === Tickとは? === |
- | \\ | + | |
- | TPSはサーバーにかかる負荷に対して上記の図のように低下していくようです。\\ | + | Minecraftをはじめ、多くのゲームは、大量のイベント処理群をまとめて無限**ループ**させて動かしています。\\ |
- | なので負荷を受けTPSが0に近づくには近づけば近づく程、より大きな負荷がサーバーにかかる必要性があります。\\ | + | たとえば、雨の時の落雷判定、氷が凍る・解ける判定、植物が育つ判定etc…は、このループ1回ごとに、確率で発生するようにプログラムされています。 |
- | \\ | + | |
- | また、TPS20の時のサーバーは、あくまで基本的にTPSが20を超えぬよう制御されているだけであり、\\ | + | Minecraftでは、このループを**< |
- | 出力に余剰がある場合があります。この場合、たとえば負荷地域を調べる際に、\\ | + | |
- | その負荷が余剰出力によって賄える程度のものであれば\\ | + | 公式Wikiほかより、< |
- | TPSは20から下がらない為、正確な負荷地域を調べられない場合があります。\\ | + | |
- | \\ | + | * 雨天時の落雷判定 |
- | \\ | + | * 水が凍ったり、雪が積もったり、雨が大釜に溜まったりする処理 |
- | ◆補足◆\\ | + | * 植物・キノコの成長判定 |
- | 尚、注意して頂きたいのは、サーバーに同時接続するプレイヤーが増えるだけでも\\ | + | * 氷や雪が解ける判定 |
- | サーバー全体で読み込み稼働しているチャンクが多くなる為、サーバーへの負荷になるということです。\\ | + | * せき止めた溶岩が消える処理 |
- | これは正直なところ『必要経費』的な部分でもあり、サーバー負荷対策という点においては、\\ | + | * ネザーポータルからゾンビ豚がスポーンする判定 |
- | 必要経費以外で最大限サーバーへの負荷を減らす、と言う考えを根底にして考えてゆくのが良いと思います。\\ | + | * レッドストーン回路の処理 |
- | (ただし接続プレイヤーが多くても、皆が一か所に集まっていれば読み込み稼働チャンクは減り、負荷は減る)\\ | + | * トロッコ等乗り物の移動処理 |
- | \\ | + | * マップごとの時間の経過 |
+ | |||
+ | これ以外にもたくさんありそうです。 | ||
+ | |||
+ | === TPSの理想値 === | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 図:20TPSのイメージ | ||
+ | |||
+ | 上の図では、10: | ||
+ | 1秒あたり20< | ||
+ | Minecraftにおいては、これが理想値です。 | ||
+ | |||
+ | |||
+ | === TPSが落ちるというコト === | ||
+ | |||
+ | しかし、処理には時間がかかります。 | ||
+ | |||
+ | * たまたま大量の処理が必要な場所にいた場合 | ||
+ | * 大人数がログインしていた場合(30人ログインしていたら、単純計算で、サーバー機はシングルの30倍のイベント処理を行うことになる) | ||
+ | |||
+ | こういった時は、行うべき処理が多くなり、1Tickに時間がかかると思われます。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 図:13.8TPSのイメージ | ||
+ | |||
+ | 上の図では、10: | ||
+ | 即ち、13.8TPSと表現されます。 | ||
+ | |||
+ | この状況下では、Tickに依存する処理は、20TPSのときに比べて遅くなります。 | ||
+ | |||
+ | たとえば「トロッコの進む速度」は最も体感しやすいものと思われます。人のいない日中時間帯に乗るのと、人の多い夜に乗るのとでは、速度が雲泥の差です。\\ | ||
+ | この速度の変化は、TPSの低下によるものです。 | ||
+ | |||
+ | そしてTPSの低下は、先述の通り、1Tickの処理に手間取っているために起きるのです。 | ||
+ | |||
+ | |||
+ | === TPSを落とさないために === | ||
+ | |||
+ | TPSは、1Tickにて行うべき処理の数が多い(=サーバーへの負荷が高い)場合に低下しますが、\\ | ||
+ | TPSはサーバーへの負荷に対して反比例のグラフを描いて低下していきます((一般に、「コンピュータへの負荷とスループット」の関係は反比例(よりも急)なものが多い))。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 図:サーバーへの負荷とTPSの相関 | ||
+ | |||
+ | 図の左上、「サーバーへの負荷が著しく低い」時にはTPSが20を超えています。\\ | ||
+ | MinecraftはTPSが20になるように努めているだけであり、1Tickの処理が思ったより早く済んだ場合は、20TPSを超えることがあります。\\ | ||
+ | 平日の日中や深夜など、ログイン人数が自分を含めて1~2人といった時間帯に入ってみると、そんな状態を味わうことができます。 | ||
+ | |||
+ | **「サーバーへの負荷」は一定のものではありません**。\\ | ||
+ | 人が一箇所に集まる瞬間もあれば、てんでバラバラな場所に動く瞬間もあります。\\ | ||
+ | たまたま複数人が同時に大規模なレッドストーン回路を動かすこともあるでしょう。\\ | ||
+ | ログイン人数が多い時、TPSは乱高下しやすいです。 | ||
+ | |||
+ | 先にも述べた通り、**ログイン人数が増えるほど**、サーバーへの負荷は増すものであり、\\ | ||
+ | この状況下では**20TPSの維持は不可能**です。\\ | ||
+ | そういった「必要経費的な負荷」を減らすのではなく、「無駄な負荷」を減らすことが重要です。 | ||
---- | ---- | ||
- | \\ | + | |
- | 【TPS基本上限20の制御を解除したサーバー=高速鯖】\\ | + | === おまけ:高速鯖 |
- | 当サーバーの管理人、ecolight氏の発案によりTPS20の制御を解除したサーバー。\\ | + | |
- | 太陽、月、MOBの動きがハンパ無く速く、普通に動いているように見えるのはプレイヤーのみ。\\ | + | 当サーバーの管理人、ecolight氏の発案により、20TPSというリミッターを解除したサーバーが存在します。\\ |
+ | TPS400などの値を記録し、太陽、月、MOBなどのTPSに依存したコンテンツは驚くほど超高速に動作します。\\ | ||
+ | プレイヤー自体の動きは通常通りなので、その対比が不思議な世界観を演出し、\\ | ||
+ | 敵MOBなどの無慈悲な超高速攻撃に立ち向かうスリルを味わうことができるカオスなサーバーです。 |