ETERNUS NR1000C series FAQ
5. キャッシュ操作
本ページで紹介している情報は、2006年6月発表のものです。
本製品は、2006年12月に販売終息しました。ご了承ください。
Answer
- NR1000Cのキャッシュ可能容量はどれだけですか?
キャッシュ可能容量は、スペアディスク・パリティディスクを除いた、データディスクの合計の約75%です。(フォーマット前の容量の75%です。)ただし、NR1000Cのモデルやハードディスクの容量、ハードディスクの搭載本数により異なります。またログファイルのサイズにより変動します。キャッシュ可能容量を超えてオブジェクトをキャッシュしなければいけない場合、 NR1000Cは自動的に削除可能なオブジェクトを削除して、新しいオブジェクトをキャッシュします。
- キャッシュされているオブジェクトの一覧を表示させることはできますか?
できません。一覧表示はできませんが、キャッシュされている個々のオブジェクトの詳細を表示することは可能です。
コンソールまたはtelnet上でobjectコマンドを入力することで表示できます。
例)prompt> object http://www.abc.com/index.htm - キャッシュした内容を削除する方法を教えてください。
Appliance ManagerのUtilitiesタブ>Cache Objects>Flush のFlush the Cache: にてFlushボタンを押してください。
上記の方法では、キャッシュした内容すべてが削除されてしまいますので、Webサーバ毎のキャッシュ内容を削除するには、 ejectコマンドをご利用ください。ただしこれは、以下の例のようにオブジェクト単位になります。【例】
> eject http://192.168.1.10/test.html (注)削除
Ejected 'http://192.168.1.10/test.html'
> object http://192.168.1.10/test.html (注)確認
'http://192.168.1.10/test.html' is not in the cache.また、キャッシュデータを削除するのではなく、WebServerの更新内容をキャッシュサーバに強制的に取り込む方法もあります。こちらはconfillコマンドをご利用ください。
【例】
> confill http://192.168.1.10/test.html
Content fill running in the background.
> Fri Dec 12 10:14:40 JST [sthread_loop:info]: Content fill of http://192.168.1.10/test.html completed(download 0:00:00.007)さらに、クライアント側でも、ブラウザでリロードボタンを押せば更新内容が反映されます。リロードボタンを押すとクライアントは、HTTPヘッダーにPragma: no-cacheを付けてリクエストを出すため、キャッシュからではなくWebServerからリクエストが返ってきます。
ただし、Internet Explorer でリロードボタンを押しても下記の種類のコンテンツは 更新内容を取得できません。
Internet Explorer の場合には、上記 eject または confill コマンドで対応してください。・Adobe Flash
・Adobe Reader
・Apple QuickTime Player
・Microsoft Windows Media Player
・Real Networks RealPlayer
・Sun Java Virtual Machine - 特定URLのキャッシュを定期的にクリアできますか?
できません。
IMS Ruleを設定し、特定URLに対して定期的に更新確認を行うことで上記要望に対応できます。
設定した期間を過ぎていた場合、Clientからのリクエスト時に更新確認を行います。 - キャッシュはいつどのように更新されるのか教えてください。
HTTPヘッダにより該当コンテンツのキャッシュを更新する、しないを判断します。
キャッシュしたものは2回目のアクセスでは1)HTTPヘッダにCache-Control:やExpires:が設定されていれば、それに従ってキャッシュを返すか、再読み込みし返す(更新)かを判断します。
2)HTTPヘッダにCache-Control:やExpires:が設定されていなければ、コンテンツの鮮度確認をしてその結果によりキャッシュを返すか、再読み込みし返す(更新)かを判断します。
1)の場合、NetCacheでのトラフィックの扱いは(IMSの場合を含め)RFC2616に準拠したものになります。
2)の場合、NetCacheでのアルゴリズム(6項参照)になります。 - キャッシュコンテンツの有効期間(TTL)を教えてください。
Webサーバがコンテンツに、Cache-Control: max-ageヘッダー、または Expiresヘッダーを付けて有効期間を指定した場合はそれに従います。
ただし、NR1000Cの設定値 Force Refresh Rate(Default値365日)は超えられません。
Webサーバが Cache-Control: max-ageヘッダーもExpiresヘッダーも付けず、Last-Modifiedヘッダーのみ付けた場合、Last-Modifiedヘッダーの時刻から現在の時刻の半分を、今後の有効期間と見込みます。ただし、NR1000Cの設定値 Default Maximum Age(Default値30日)は超えられません。
例えば下記の例の場合、このコンテンツの有効期間は3時間と見込まれ、9:00まではWebサーバに鮮度確認をせずに、同じコンテンツを返します。9:00以降は、最初にアクセスがあった時にあらためて鮮度確認を行います。例えば10:00のアクセスにより鮮度確認した結果、Last-Modified時刻が変わっていなければ、新たな有効期間は5時間と見込まれ、15:00までは鮮度確認をせずに、同じコンテンツを返します。 - NR1000Cでキャッシュされたコンテンツはキャッシュに残ったままなのでしょうか?また、セキュリティを考慮すると定期的に全てのキャッシュをクリアした方がよいのでしょうか?
Diskがいっぱいになれば、一番古いコンテンツから順番に削除されます。特に定期的に全てのキャッシュをクリアするような運用は勧めておりません。
- 特定URLをキャッシュしないようにする方法を教えてください。
以下の二通りあります。
1)ACLでキャッシュしないURLを指定する。指定したURLだけキャッシュされなくなる。
例:
proxy url http://www.abc.com/(注)この場合、http://www.abc.com/xxxx.html はキャッシュされる。
proxy url-prefix http://www.abc.com/
(注)この場合、http://www.abc.com/xxxx.html はキャッシュされない。
2)ApplianceManger Setup-> HTTP -> Header and Caching Behaviorの Explicit Caching Rulesタブでルール設定を行う。
以下に設定方法を示します。[設定方法]
-Rule #: ルールの番号(ルール番号の小さいものが優先される。)
-Rule Enable: ルールの有効・無効。
-Actions: キャッシュ・キャッシュしない。
-Conditions: このルールを適用する条件を設定。
以下から日時の条件を選択。
All Day
Specific Time Range: Start Time~Stop Time
All Dates
Specific Date Range: Start Date~Stop Date
-Phrase: URLによる条件設定。 - 特定のURLの中の文字列を指定し、キャッシュしないようにする方法はありますか?
はい、あります。Appliance Managerにて Setup>HTTP>Header and Caching BehaviorのExplicit Caching Rules より以下のようなNew Ruleを作成してください。
-Action(s): no-cahe
-Phrase: url contains-substring abcこれは、URLの中に abcを含むものはキャッシュさせないRule になります。
- config.http.caching.cacheability_rule_list に no-cache の設定をしましたがWebAccessログではキャッシュヒットと記録されてしまいます。no-cache の設定が有効にならないのはなぜでしょうか?
config.http.caching.cacheability_rule_list にno-cache の設定をすることにより該当urlはキャッシュされません.しかし、設定前に該当urlが既にキャッシュされている場合、優先的にキャッシュが読み出されWebAccessログにキャッシュヒットと記録されます。NR1000Cのキャッシュを下記の方法でクリアしてご利用下さい。
全てのキャッシュをクリアする方法
1)Appliance Manager のUtilitiesタブ>Cache Objects を開きます。
2)Flush the CacheのFlushボタンをクリックします。
CLIよりキャッシュ上の特定のオブジェクトをクリアする方法
eject <target_url>
例:
NR1000C> eject http://www.123.ne.jp/img/456.gif
と実行する。
Logには、
03/Mar/2006:10:54:10 +0900] 0.001 - TCP_HIT_EJECT/- - PUSH
http://www.123.ne.jp/img/456.gif
と表示されます。 - WWWサイトのコンテンツを更新したのに、クライアントPCから参照すると一部更新されない場合があります。原因と対処方法を教えてください。
コンテンツにはHTMLヘッダにコンテンツの寿命を指定するヘッダを加えることができます。
(例)Program:no-cache, expire, max-age等
このヘッダーが付いている場合は、ヘッダの規則に従ってコンテンツが更新されます。付いていない場合は、NR1000Cの更新ロジックに従います。(5-6参照)
またIEでF5キーを押す等で強制的に新しいコンテンツの更新を行うことが可能です。注:ActiveX系のコンテンツは上記方法でも更新されずNR1000Cの更新ロジックに従います。この場合には、 5-8の手順でキャッシュしないようにして下さい。
- FTPoverHTTPではなく、FTPコマンドを用いてFTPキャッシュすることは可能ですか?
以下の方法で可能です。
1)NR1000C の FTP機能を有効にする。
Appliance Manager の Setup->FTP->General を開き、FTP Proxy Enable の Enables FTP proxy service をチェックして、Commit Changes ボタンをクリックする。2)FTPサーバに対してNR1000C経由で、FTPコマンドを使用する。
C:\>ftp nc3100(NR1000Cのホスト名又はIPアドレスを指定する。)
Connected to nc3100.netapp.com
220 nc3100.netapp.com (NetCache) Wed, 04 Jun 2003 15:36:55 GMT
User (nc3100.netapp.com:(none)): anonymous@ftp.netapp.com(ユーザー名@FTPサーバでアクセスする。)
331-ftp.netapp.com NcFTPd Server (licensed copy) ready.
331 Guest login ok, send your complete e-mail address as password.
Password: (パスワードを入力する。 - NR1000CはCGI, JSP, ASP(Active Server Pages)等のスクリプトをキャッシュしますか?
キャッシュしません。URLに/cgi, .cgi, ?を含むものはキャッシュしない仕様になっています。
- NR1000Cはフラッシュ(*.swf)をキャッシュするのか教えてください。
HTTP上のコンテンツはキャッシュ可能です。
ただし、フラッシュ専用の配信サーバを使用した場合は未サポートになります。