English is here
- &font(120%){&font(Red){注意};:}; SL Viewer 2.1.1以降,テクスチャデータはHTTP(S)経由でダウンロードされるようになりました.従って,SL Viewer 2.1.1以降の Viewerを使用している場合,sl_cache は殆ど役に立たないものと思われます.
- sl_cache は sl_relay と連携して使用する,Second Life のテクスチャデータのキャッシュサーバです
- 我々の測定では,テクスチャデータが全UDPデータに閉める割合は,SIMの状態にも依存しますが,およそ最大 80%程度です
- UDPパケットのシーケンス番号等の処理は sl_cache は行いません.データを保存して,取り出すだけです.
- テクスチャデータを Viewerに送信する場合,あまり大量に送信すると Viewerと SIMの通信を妨害するようです.(画像だけ転送されて,プリムが挙がってこない)
- sl_cache は sl_proxy の一部です.
- 最新版は 1.1.0 ('09 3/2)
- プロキシサーバ(sl_relay)と連携させることにより,セカンドライフのテクスチャデータをキャッシュ可能.
バグまたは改善が必要な箇所†[edit]
- キャッシュされたデータはプレーンファイルまたは Berkeley DB形式で保存されます.SQL DBには未対応.
- Berkeley DBではスピードが遅くなります.現時点ではプレーンファイルの方が高速です.
- 負荷テストが不十分.
- テクスチャデータのキャッシング
- テクスチャデータベース
- サーバが2つ以上のネットワークインターフェイスを持つ場合
- キャッシュデータの削除
- ログとデバッグモード
- セキュリティ
- 設定ファイルのデフォルトは /usr/local/etc/sl_proxy/sl_cache.conf.
- sl_cache の -f オプションを指定すれば他のファイルを指定することも可能.
- 設定ファイルは,sl_cache が実効ユーザにスイッチする前に読み込むので,起動ユーザが読める必要がある.
- 設定ファイルでは一行に一項目の設定を記述する.空行,#で始まる行は読み込まれない.
キャッシュサーバの通信ポート†[edit]
sl_cache [-p port_no] [-f config_file] [-u user_name] [-i interface_address]
[-pid pid_file] [-l [hitrate_logfile]] [-v syslog_level]
[-exp [expire_days]] [-lx [expire_logfile]]
[-fdb] [-d]
[--version] [--help] [-h]
-p : Relay Server(sl_relay) との接続口になるポート番号.デフォルトは 8200
-f : 設定ファイルを指定.デフォルトは /usr/local/etc/sl_proxy/sl_cache.conf
-u : 実効ユーザ.セキュリティ維持のため,rootユーザ以外の権限で動かす場合に指定する.
-i : サーバが二つ以上のネットワークインターフェイスを持つ場合に,sl_relay側のインターフェイスのIPアドレスを指定する
-pid : pid ファイル./etc/init.d/sl_cache stop などで止めたい場合に,pidを書き込むファイル.
-l : キャッシュのヒット率のログファイルを作成する.続けてログファイル名をフルパスで指定可能.
デフォルトは /var/sl_proxy/sl_cache_hitrate.log
-v : syslog のレベル.デフォルトは LOG_INFO (7)
-xpr : キャッシュデータの expire用デーモンを起動する.続けて expire時間を日単位で指定可能.デフォルトは 30日.
expireデーモンは指定された時間の間アクセスの無かったデータをランダムに検索して削除する.
-lx : -xpr オプションが指定されて場合は expireログを作成する.続けてログファイル名をフルパスで指定可能.
デフォルトは /var/sl_proxy/sl_expire_cache.log
-fdb : データベースに Berkeley DB を使用する.デフォルトは通常のファイル.
-d : デバッグモード
--version : Version 情報を表示する.
--help, -h : ヘルプを表示する.
- キャッシュデータの保存が2段になっているのは,ファイルロックの問題を回避及びセキュリティレベルの維持が目的.
- 現バージョンではデータは Planeファイルで保存されているので,同時書き込みを防ぐために,一個のプロセスのみがデータの書き込みを行っている.