#author("2025-04-15T09:13:53+00:00","default:iseki","iseki")
#author("2025-04-15T09:14:02+00:00","default:iseki","iseki")
* sl_cache [#m18048f6]
[[English is here>sl_cache (E)]]~

** 概要 [#kbf9eb0e]
-  &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%>http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/gate.php?way=attach&_noumb&refer=sl_cache&openfile=texture_rate.png]]''程度です
- UDPパケットのシーケンス番号等の処理は ''sl_cache'' は行いません.データを保存して,取り出すだけです.
- テクスチャデータを Viewerに送信する場合,あまり大量に送信すると Viewerと SIMの通信を妨害するようです.(画像だけ転送されて,プリムが挙がってこない)

- ''sl_cache'' は ''[[sl_proxy]]'' の一部です.
- 最新版は ''1.1.0'' ('09 3/2)
#br

*** 機能の概要 [#w31d1f93]
+プロキシサーバ(''[[sl_relay]]'')と連携させることにより,セカンドライフのテクスチャデータをキャッシュ可能.

*** バグまたは改善が必要な箇所 [#de44e779]
+キャッシュされたデータはプレーンファイルまたは Berkeley DB形式で保存されます.SQL DBには未対応.
+ Berkeley DBではスピードが遅くなります.現時点ではプレーンファイルの方が高速です.
+負荷テストが不十分.

** 詳細説明 [#d77fa061]
+ [[テクスチャデータのキャッシング>./Caching]] 
+ [[テクスチャデータベース>./テクスチャデータベース]]
+ [[サーバが2つ以上のネットワークインターフェイスを持つ場合>/sl_proxy/複数のネットワークインターフェイス]] 
+ [[キャッシュデータの削除>./Expire]]
+ ログとデバッグモード
+[[セキュリティ>./セキュリティ]]

** 設定ファイル [#le7dda31]
-設定ファイルのデフォルトは ''/usr/local/etc/sl_proxy/sl_cache.conf''.
-''sl_cache'' の ''-f'' オプションを指定すれば他のファイルを指定することも可能.
-設定ファイルは,''sl_cache'' が実効ユーザにスイッチする前に読み込むので,''起動ユーザ''が読める必要がある.
-設定ファイルでは一行に一項目の設定を記述する.空行,#で始まる行は読み込まれない.
#br

*** 設定項目 [#od4fbb48]
**** キャッシュサーバの通信ポート [#xe6d87f1]
-[[MinUdpPutPort>./MinUdpPutPort]]
-[[MaxUdpPutPort>./MaxUdpPutPort]]
-[[MinUdpGetPort>./MinUdpGetPort]]
-[[MaxUdpGetPort>./MaxUdpGetPort]]

**** 転送パケット数 [#w58266bc]
-[[GetPacketNum>./GetPacketNum]]

**** アクセス制御 [#i44324d9]
-[[Hosts_Allow_File>/sl_proxy/Hosts_Allow_File]]

**** その他 [#u3056607]
-[[Temp_File_Dir>/sl_proxy/Temp_File_Dir]]
-[[MaxIdleTime>/sl_proxy/MaxIdleTime]]
#br

** 起動オプション [#nb85999c]

 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 : ヘルプを表示する.

**プロセス相関 [#s18758a7]

***キャッシュの概要 [#t18410a2]
- キャッシュデータの保存が2段になっているのは,ファイルロックの問題を回避及びセキュリティレベルの維持が目的.
- 現バージョンではデータは Planeファイルで保存されているので,同時書き込みを防ぐために,一個のプロセスのみがデータの書き込みを行っている.
#ref(sl_cache.png,,70%)
#ref(sl_cache.png,,80%)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS