server | v3 switch to v4  

Photon Server Config Settings

.

Photon Server 3.x.のPhoton構成の設定です。 SDK内のPhotonServer.configファイルです。

.

.

Photon バージョン: 3.x

.

作者: developer@photonengine.jp

.

更新日: 5/27/2014

.

.

インスタンス

.

多数インスタンスに対応しています。configファイル内に各インスタンスの独自のノードがあります。現在、PhotonControlはInstance1しか起動しませんが、.cmdファイルを修正して他のインスタンスを起動することが出来ます。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

ConfigName Configファイルの任意 "ConfigName" 値。存在すればログされます。

.

ReportOnJob FALSE Photonがwin32 ジョブオブジェクト内で(プロセス起動コードが使用してプロセスの挙動に制限をつけるもの)実行されているか判別できるようになります。実行されている場合、現在設定されている制限を報告します。

.

LogFileLocation Logfileのパスを設定する。デフォルトはサーバが起動される場所。PhotonSocketServer.exeに対して絶対でも相対でもでも良い。

.

EnablePerformanceCounters TRUE サーバがパフォーマンスカウンターを有効にする・しないを定義します。パフォーマンスカウンターを実施すると、共有されたメモリーセグメントが作成され、カウンターDLLがサーバと通信できるようになります。共有メモリーセグメントを作成するには、サーバを実行しているユーザが適切な権限を保持している必要があります。権限無しでサーバを実行するには(パフォーマンスデータをパブリッシュしない場合)この値をfalseにします。

.

MaxMessageSize 512000 サーバから受信又は送信されるUDP, TCP 又は WebSockets メッセージが所有するbyte数の上限を定義。 メッセージがMaxMessageSizeの上限を超えると、クライアントはサーバから切断されます。MaxMessageSizeは適切なリスナーでオーバーライトすることができます。

.

ShutdownTimeout 30000 このタイムアウト(ms)後にPhotonシャットダウンが正常に完了しない場合、Photonのプロセスは強制的に破棄されます。

.

DisplayName Photon Controlで表示するインスタンスの任意のディスプレイ名。

.

.

TCP

.

設定 Photon デフォルト Config デフォルト 説明

.

TCPBufferSize 4096 TCPデータ転送中に使用されるバッファのサイズ。これはメッセージサイズを制限するものではありません。バッファサイズを平均より少し大きくすることが理想的です。

.

TCPBufferAllocatorPoolSize 500 後から再利用できるようプールに保持される、TCPデータ転送に使用されるバッファの数。典型的なスピードとリソースの引き換え。プールされたバッファは速く配分できますが、常にメモリーを使用します。

.

StreamSocketAllocatorPoolSize 250 後から再利用できるようプールに保持されるTCPソケットの数。典型的なスピードとリソースの引き換え。プールされたソケットは速く配分できますが、常にメモリーを使用します。

.

.

UDP/ENET

.

設定 Photon デフォルト Config デフォルト 説明

.

DatagramSocketAllocatorPoolSize 1000 後から再利用できるようプールに保持される、データグラムソケットの数。典型的なスピードとリソースの引き換え。プールされたソケットは速く配分できますが、常にメモリーを使用します。

.

PingIntervalMilliseconds 1000 Pingインターバルは、データがフローしていない時にpingがサーバからクライアントに送られる頻度です。Pingを送るとサーバに負荷が加わるので調整が可能です。値を上げることによりサーバび加わる負荷が下がります。 ENetプロトコルは通常このパラメータに対して固定の値を使用します。デフォルト値はENetの基準である500msです。

.

DataSendingDelayMilliseconds 5 Data Sending Delayは同じデータグラムのクライアントに送るデータを蓄積するまでにサーバが待機する時間。値を上げると、ひとつのデータグラムが保持するデータ量が上がるので送信されるデータグラムが減ります。しかし、サーバがレスポンスを送るまでに待機する時間が延びるのでレイテンシーがあがります。スタンダードのENetコードを使用している場合、enet_host_flush()又はenet_host_service()にコールが送られるまでデータは蓄積されます。

.

AckSendingDelayMilliseconds 5 Data sending はサーバがクライアントにACKを送るまで待つ時間です。これにより、遅れの時間内にレスポンスパケットが生成された場合、ACKをデータパケットにピギーバックすることができます。ACKは返答の際に同じデータグラムに入れることが出来るので、値が大きくなると送信されるデータグラムの数が減ります。これによりレイテンシーが下がることはありません。 スタンダードなENetコードを使用する場合、enet_host_flush() 又は enet_host_service() にコールが送られるまでデータは蓄積されます。

.

MinimumRetransmitTimeout 200 Enet再送信までの時間はピアの蓄積されたRTTに基づいて計算されます。この設定で最短の再送信時間を定義します。レイテンシーが非常に低いピアはこの設定の値よりも早く再送信を求める場合があり、その際は遅れます。 この値により、データが再送信される速度を減速させ、サーバに掛かる負荷を減らすことができます。送信するデータの信頼性が高く、ピアのレイテンシーが低い場合、また、最小限のレイテンシーしか必要ない場合、この値を0以外に設定するとレイテンシーを上げることになり、定められたCPUリソースで対応できるピアの数が減少します。

.

ENETBufferAllocatorPoolSize 5000 後から再利用できるようプールに保持されるバッファ数。典型的なスピードとリソースの引き換え。プールされたバッファは速く配分できますが、常にメモリーを使用します。

.

MinimumTimeout 5000 5000 ENetピアの反応が無いことによるタイムアウト切断が発生するまでの最短時間。実際の時間はRTT履歴を元に、ピア毎に動的に定められます。

.

MaximumTimeout 30000 30000 ENetピアの反応が無いことによるタイムアウト切断が発生するまでの最長時間。実際の時間はRTT履歴を元に、ピア毎に動的に定められます。

.

ValidateCRCifPresent FALSE 有効の場合:受信データグラムに任意のCRC値が含まれる場合、チェックサムが有効になります。ピアが現在のCRC値で作成されている場合(クライアントライブラリに設定されるUDPヘッダ内のCRCフラグで示される)クライアントに送られる全ての送信データグラムにはそのCRC値が含まれます。

.

.

Udp/Enet Throtteling

.

設定 Photon デフォルト Config デフォルト 説明

.

PerPeerMaxReliableDataInTransit 51200 16384 ピアが送信できてまだACKを受信していない信頼性のあるデータの上限byte数。このデータ量が送信されると、その後の信頼性のあるデータは全てqueueされる。

.

PerPeerTransmitRateLimitKBSec 256 256 1秒で送信できるデータ量(信頼性の有・無)の上限(KB単位)。ピアが送信できるデータ量を制限することができます。上限に達するとその後の信頼性のあるデータはqueueされ、信頼性の無いデータはドロップされます。デフォルトの12は任意の値で、特別な意味はありません。

.

PerPeerTransmitRatePeriodMilliseconds 200 送信レートの制限を確認する頻度。デフォルトは250ms毎(例:1秒に4回)、チェックするたびにPerPeerTransmitRateLimitKBSecを4でスケールします。 値を小さくするとデータのフローの一貫性が上がります。値を大きくすると一貫性は下がりますが、使用するサーバリソースは抑えられます。

.

MaxQueuedDataPerPeer 512000 163840 ピアがqueueできる信頼性のあるデータ量の上限。PerPeerMaxReliableDataInTransit又はPerPeerTransmitRateLimitKBSecの上限を超えると信頼性のあるデータはqueueされます。この上限を超えると、その後の信頼性のあるデータにはエラーコードが返されます。

.

.

DEBUGGING

.

設定 Photon デフォルト Config デフォルト 説明

.

ProduceDumps TRUE クラッシュ時にdumpファイルの作成を有効・無効を切り替える。Dumpファイルはの問題を探知するのに必要。

.

DumpType Full 書き込むクラッシュdumpを種類を定義する。種類はFull、Maxi、Miniの順番に情報が少なくなり、ハードディスク上の容量もMiniが最も少ない。

.

MaxDumpsToProduce 10 書き込まれるdumpファイルの最高数を設定。ファイルが移動や削除されれば、新しいファイルを書き込むことが出来ます。

.

.

IOPool

.

このスレッドプールはデータグラムの送受信やTCP読み込みの完成などを含む全てのI/Oオペレーションを処理します。 ENetThreadPool\OnlyDispatchTimersがtrueに設定されていれば、ENetプロトコルオペレーションを処理することもできます。受信データがコマンドに非ブロックされると、Business Logicスレッドプールに送られ、CLRと管理されたコードにパスされます。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

NumThreads 2 この値はソケットI/Oに使われるスレッドの数を定義します。4-8の値が適切ですがサーバをプロファイルして最適な値を見つけてください。I/O スレッドパフォーマンスカウンターを使用して、サーバに負荷が掛かっている状態で全てのI/Oスレッドが混雑しているタイミングを確認します。0に設定するとI/Oプールはスレッド数の2倍のCPUコアを使用します。2つのコアまではこれで問題ありませんが、結果のスレッド数が8以上の場合は役に立ちません。

.

.

ThreadPool

.

Business Logicスレッドプールです。全てのCLRオペレーションに使用されます。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

InitialThreads 4 この設定は最初にスレッドプールにあるスレッドの数を定義します。

.

MinThreads 4 この設定はスレッドプールに含まれる最小のスレッド数を定義します。

.

MaxThreads 4 この設定スレッドプールに含まれるスレッド数の上限を定義します。Initialにすると最少数と最高数が全て同じになり、プールは動的プールではなく、静的プールです。静的プールは、ワークアイテムの発送が最適化されるので動的プールより効果的です。動的プールは要求に応じて拡張・縮小します。ワークアイテムが短命でプールの拡張が少ない場合、プールを静的プールとして設定してパフォーマンスをブーストすることができます。

.

MaxDormantThreads 4 休止状態になるスレッド数の上限を定義します。例:現在ワークをしていない。休止中のスレッドがこの数値を超えた場合、いくつかのスレッドがシャットダウンされます。

.

PoolMaintPeriod 5000 この設定はプールがメンテナンスされる頻度を定義します。値はミリ秒です。Xミリ秒毎にメンテナンススレッドが起動して休止スレッドを確認して、状況に応じてシャットダウンします。

.

DispatchTimeout 100 この設定は新しいスレッドが開始される時間を定義します。ワークアイテムが送信され、アイテムを拾い処理を始める前に設定されたミリ秒数を超えた場合、新しいスレッドが開始できます。

.

.

ENetThreadPool

.

Enetスレッドプールはサーバにある3つのスレッドプールの一つです。全てのEnetプロトコルオペレーションに使用されます(例:受信データグラムの非ブロック, ackオンやACKの送信, ピアの周期的なプロトコルイベントの取り扱い(例:再送信やpingの生成))。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

InitialThreads 2 ThreadPoolを参照

.

MinThreads 2 ThreadPoolを参照

.

MaxThreads 2 ThreadPoolを参照

.

MaxDormantThreads 5 ThreadPoolを参照

.

PoolMaintPeriod 5000 ThreadPoolを参照

.

DispatchTimeout 100 ThreadPoolを参照

.

OnlyDispatchTimers FALSE Trueに設定すると、唯一のEnetタイマーオペレーションがこのプールを使用します。Falseにすると、全てのEnetオペレーション(例:受信データのデブロックやACKの処理等のプロトコルレベルのオペレーション)がこのプールに送信されます。

.

.

Runtime

.

Photon Runtimeの挙動を定義します。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

Assembly PhotonHostRuntime, Culture=neutral 使用するPhoton Runtimeアセンブリの詳細。 通常の.Netアセンブリ実行ルールを使用してアセンブリを探します。アセンブリはExit Games Photon Runtimeキーで署名する必要があります。また、アセンブリ名のPublicKeyToken部分はアセンブリを実行する際に追加するので、指定しないでください。

.

CLRVersion デフォルトで、最新のDotNetランタイムを使用してPhoton Applicationをホスティングします。インスタンス毎に選択したバージョンを読み込むことが可能になります。 値はv4.0かv2.0、または、ビルド番号を含むバージョンです。例:CLRVersion = "2.0"

.

EnableMDA FALSE 管理されたデバッグアシスタントを有効にする。exeと同じディレクトリーにあるPhotonSocketServer.exe.mda.configファイルで設定してください。

.

Type PhotonHostRuntime
.PhotonDomain
Manager
Photon Runtimeのドメインマネージャーとして使用されるタイプの名前。このタイプはRuntime値で指定されるアセンブリに位置する必要がある。PhotonHostRuntimeInterfaces.IPhotonDomainManagerから取得する。

.

UnhandledExceptionPolicy Ignore Ignore Ignore, ReloadAppDomain, TerminateProcess

.

.

Applications

.

設定 Photon デフォルト Config デフォルト 説明

.

default アプリケーションが指定されていない場合に使用されるデフォルトのアプリケーション。

.

PassUnknownAppsToDefaultApp TRUE Trueに設定されていて不明なアプリケーション名が与えられた場合、デフォルトのアプリケーションが使用されます。Falseの場合は致命的なエラーとなり切断されます。

.

.

アプリケーション

.

設定 Photon デフォルト Config デフォルト 説明

.

Name アプリケーションの任意の名前。ディスパッチに使用される。

.

SharedDirectory "Shared" Shareされたアセンブリを収納するために使用。Base Directoryの下に位置する。

.

BaseDirectory このフォルダには全てのアプリケーションアセンブリやconfigファイル等を含むフォルダが収納されている。

.

Assembly 使用するアセンブリの詳細。通常の.Net アセンブリ読み込みルールを使用してこのアセンブリを探し出す。完全なアセンブリ特定文字列を含ませることが出来る(必要に応じてPublicKeyTokenを使用することも可能)。

.

Type アプリケーションとして読み込まれるタイプの名前。PhotonHostRuntimeInterfaces.IPhotonApplicationから取得する必要がある。

.

EnableShadowCopy FALSE 有効にするとアセンブリファイルの実行時にCLRがプライベートディレクトリにコピーを作成します。アップデート時などにオリジナルの上書きが出来ます。それを使用しているアプリケーションドメインがシャットダウンされるまで、コピーが使用されます。

.

EnableAutoRestart FALSE 有効にすると、ファイルに変更が加えられた際にアプリが自動的に再起動します。アプリケーションの新しいコピーが起動され、全ての接続が切断されてappドメインがアンロードされるまでは古いコピーの既存の接続は継続されます。管理されていないコードがappドメインをアンロードしようとすると、IPhotonApplicationControl.OnStopRequested()メソッドが呼ばれます。この時点でアプリがクライアントに通知をすることができます。

.

ForceAutoRestart TRUE FALSE ForceAutoRestartはtrueに設定されているとEnableAutoRestartを定義しますが、全ての既存の接続を切断させます(切断を待たずに)。

.

RestartDelayMilliseconds 1000 ファイルの変更による再起動をこの設定で遅らせることが出来ます。

.

WatchFiles "" デフォルトで、WatchFilesに入力が無い場合は全てが監視されます。例:WatchFiles="dll;config;Lite.XML"

.

ExcludeFiles "" デフォルトで、ExcludeFilesに入力が無い場合は何も除外されません。例:ExcludeFiles="log4net.config"

.

StartTimeoutMilliseconds 0 Applicationが設定された時間で起動しない場合、Photonがシャットダウンします。0 = タイムアウトが適用されません。

.

StopTimeoutMilliseconds 0 Applicationが設定された時間で停止しない場合、Photonがシャットダウンします。0 = タイムアウトが適用されません。

.

.

TCPListeners

.

TCPListener

.

設定 Photon デフォルト Config デフォルト 説明

.

IPAddress 0.0.0.0 リッスンするIPアドレス。例:全てのインターフェイスにリッスンする場合、192.168.0.1 又は 0.0.0.0 。

.

Port 4530 5051 リッスンするポート

.

ListenBacklog 150 リッスンバックログqueueのサイズ。同時に設立できる接続の数に影響します。例:151のクライアントが同時に接続しようとすると最後の一つが拒否される場合があります。接続の試みには少ししか時間がかからず、一度接続が確立してからは制限に影響されることはありません。つまり、値を10に設定しても10以上が同時に接続しようとしない限り10,000のアクティブな接続もありえます。

.

RecvBufferSize 0 TCPスタックに使用されるTCP recv バッファのサイズ。TCPウィンドウサイズを定義するためにも使用される(TCPスタックがフローコントロールに使用する)。デフォルトの0は「変更をしない」という意味になり、オペレーティングシステムのデフォルト値をそのまま使用する。

.

SendBufferSize 0 TCPスタックに使用されるTCP send バッファのサイズ。TCPウィンドウサイズを定義するためにも使用される(TCPスタックがフローコントロールに使用する)。デフォルトの0は「変更をしない」という意味になり、オペレーティングシステムのデフォルト値をそのまま使用する。

.

MaxPendingWrites 50 フローコントロール設定:バッファにあるペンディング中の書き込みの上限数を設定 (TCPBufferSize参照)。

.

MaxQueuedBuffers 200 フローコントロール設定: Queue書き込みに使用されるバッファの量を設定します(TCPBufferSize参照)。ペンディングされる書き込みよりqueueされたバッファ数より多い場合、ペンディングされた書き込みしかノンページプールを使わないため、使用するノンページプールの数が減ります(希少なリソース)。

.

DisableNagle TRUE TRUE Nagleのアルゴリズムが接続時に使用されるかを定義します。Trueにすると、Nagleは無効になりTCPの送信データはTCPスタックに到達し次第すぐに送信されます。Falseにすると、Nagleは実行されTCPスタックは送信データを少ないデータグラムに収めようとします。Trueに設定するとTCP接続のレイテンシーを改良できるかもしれませんが、送信されるデータグラムの数が上がります。

.

InactivityTimeout 5000 5000 接続時にデータを受信する際に許可されるms単位の時間。この時間を超えると接続が無効とされ中断されます。このタイマーが不必要に稼動しないよう、各接続にはここで設定した値より頻繁にTCPメッセージが受信されるようにしてください。非アクティブタイマーを無効にするには0を設定してください。

.

DisconnectTimeout 120000 接続がアプリケーションにより切断された後、クライアントが通信を閉じるまでに許可されるms単位の時間。

.

OverrideApplication このコネクターに使用されるアプリケーションをオーバーライドするために使用できます。クライアントから送られるアプリケーションは無視されます。どの設定アプリケーションの名前でも、この値に設定できます。

.

DefaultApplication リスナーのデフォルトアプリケーションを定義します。クライアントが読み込まれていないアプリケーションに接続しようとするとデフォルトアプリケーションが使用されます。 このリスナーでは、DefaultApplicationがアプリケーションノードで設定されたデフォルトアプリケーションを上書きします。値はいかなるセットアップアプリケーションの名前に設定できます。

.

PolicyApplication このListenerにポリシーリクエストが送られる場合に使用されるアプリケーションを定義。(フラッシュクライアントのバグ)

.

MaxInboundMessageSize このリスナーを通してサーバが受信するメッセージのbyte数の上限を定義。メッセージがMaxInboundMessageSizeの上限を超えると、クライアントはサーバから切断されます。デフォルトはMaxMessageSizeで設定される値です。

.

MaxOutboundMessageSize このリスナーを通してサーバが送信するメッセージのbyte数の上限を定義。メッセージがMaxOutboundMessageSizeの上限を超えると、クライアントはサーバから切断されます。 デフォルトはMaxMessageSizeで設定される値です。

.

CustomConnectMessageIsRequired FALSE Trueに設定されている場合、Connectメッセージ毎にカスタムのprefix / suffix が必要となる。 .

.

CustomConnectMessagePrefix 設定された文字列がクライアントの接続メッセージのprefixとして送られた場合、Photonがそれを無視します。

.

CustomConnectMessageSuffix 設定された文字列がクライアントの接続メッセージのsuffixとして送られた場合、Photonがそれを無視します。

.

.

UDPListeners

.

UDP/EnetListenerのリストを定義

.

.

UDPListener

.

設定 Photon デフォルト Config デフォルト 説明

.

IPAddress 0.0.0.0 リッスンするIPアドレス。例:全てのインターフェイスにリッスンする場合、192.168.0.1 又は 0.0.0.0。

.

Port 5055 5055 リッスンするポート

.

ListenBacklog 500 TCPListener参照

.

RecvBufferSize TCPListener参照

.

SendBufferSize TCPListener参照

.

OverrideApplication TCPListener参照

.

DefaultApplication TCPListener参照

.

MaxInboundMessageSize TCPListener参照

.

MaxOutboundMessageSize TCPListener参照

.

.

WebSocketListeners

.

WebSocketListener

.

設定 Photon デフォルト Config デフォルト 説明

.

IPAddress 0.0.0.0 リッスンするIPアドレス。例:全てのインターフェイスにリッスンする場合、192.168.0.1 又は 0.0.0.0。

.

Port 5051 リッスンするポート

.

ListenBacklog TCPListener参照

.

RecvBufferSize TCPListener参照

.

SendBufferSize TCPListener参照

.

DisableNagle TRUE TRUE TCPListener参照

.

InactivityTimeout 10000 10000 TCPListener参照

.

OverrideApplication TCPListener参照

.

DefaultApplication TCPListener参照

.

MaxInboundMessageSize TCPListener参照

.

MaxOutboundMessageSize TCPListener参照

.

MaxPendingWrites TCPListener参照

.

MaxQueuedBuffers TCPListener参照

.

DisconnectTimeout TCPListener参照

.

.

SSL

.

設定 Photon デフォルト Config デフォルト 説明

.

Secure FALSE TrueはSSLで保護されたListenerを定義。

.

StoreName MY 証明書があるストアの名前。

.

CertificateName Photon 使用する証明書の名前。

.

UseMachineStore FALSE Machinestoreが使用されるべきかを定義。

.

.

TCPFlashListeners

.

TCPFlashListener

.

廃止。TCPPolicyListenerを使用してください。

.

.

TCPPolicyListeners

.

TCPPolicyListener

.

設定 Photon デフォルト Config デフォルト 説明

.

Address リッスンするIPアドレス。例:全てのインターフェイスにリッスンする場合、192.168.0.1 又は 0.0.0.0。

.

Port 943 リッスンするポート

.

Application Listenerのアプリケーションを定義。

.

ListenBacklog TCPListener参照

.

InactivityTimeout 1000 TCPListener参照

.

.

ConfigServer

.

<ConfigServer>ノードが存在する場合、リスナーを設定して、クライアントをtelnetするテキストメニューベースのインターフェイスを提供することが出来ます。メニューからアプリの停止, 開始, 再起動に加え、サーバのシャットダウンもできます。

.

.

設定 Photon デフォルト Config デフォルト 説明

.

IPAddress リッスンするIPアドレス。例:全てのインターフェイスにリッスンする場合、192.168.0.1 又は 0.0.0.0。

.

Port 5051 リッスンするポート

.

ListenBacklog TCPListener参照

.

.

S2S

.

設定 Photon デフォルト Config デフォルト 説明

.

PingFrequency 2500 データがフローしていない場合にpingが送信される頻度。

.

MaxInboundMessageSize TCPListener参照

.

MaxOutboundMessageSize TCPListener参照

.

RecvBufferSize TCPListener参照

.

SendBufferSize TCPListener参照

.

MaxPendingWrites TCPListener参照

.

MaxQueuedBuffers TCPListener参照

.

MaxPendingWritesMUX MaxQueuedBuffersと同じだがMUX接続用。TuneFlowControlForMUXが設定されていない場合のみ適用される。

.

MaxQueuedBuffersMUX MaxQueuedBuffersと同じだがMUX接続用。TuneFlowControlForMUXが設定されていない場合のみ適用。

.

TuneFlowControlForMUX MUX接続は X * MaxPendingWrites と X * MaxQueuedBuffersで設定される。

.

DisableNagle TRUE TCPListener参照

.

.

OutboundENet

.

設定 Photon デフォルト Config デフォルト 説明

.

GenerateOutboundCRC FALSE 有効にすると32bit CRC値が各UDPヘッダーに付加される。

.

MaxInboundMessageSize TCPListener参照

.

MaxOutboundMessageSize TCPListener参照

.

MTU 1200 UDPレベルの最高伝送単位。デフォルトは1200 - クライアントと同じデフォルトになります。

.

MaxChannels 255 ピアが対応するべきチャンネルの最高数。デフォルトは255。

ドキュメントのトップへ戻る