Internet Explorer サポートチームの藤代です。
今回は、Internet Explorer (以降 IE) のキャッシュの概要と一時ファイルが肥大化した場合の解消方法についてご紹介します。
- 目次 –
・IEが保持するインターネット一時ファイル(キャッシュ)の概要
- キャッシュファイルとインデックス情報
- キャッシュの容量
・一時ファイル (Temporary Internet Files フォルダー)が肥大化した場合の解消方法
- どのような場合にキャッシュフォルダーが肥大化するか
- 解消方法
IE が保持するインターネット一時ファイル(キャッシュ)の概要
================================================
キャッシュファイルとインデックス情報
------------------------------------------------------------
IE が保持するインターネット一時ファイルはキャッシュの実ファイルとそのキャッシュファイルを管理するインデックス情報の 2 つで構成されています。
Temporary Internet Files フォルダーでは保持されている一時ファイルを確認しやすいように表示していますが、実際の実キャッシュファイルとインデックス情報は以下のようなフォルダーに格納されています。
Windows XP 環境、または Windows Server 2003 環境の場合 (各 IE のバージョン共通)
実ファイルが格納されるフォルダー
C:\Document and Settings\<ユーザー名>\Local Settings\Temporary Internet Files\Content.IE5\<ランダムな 8 桁の英数字フォルダー>
*Content.IE5 直下の index.dat というファイルがインデックス情報のファイルです。
Windows Vista 環境、または Windows Server 2008 環境移行の場合 (各 IE のバージョン共通)
保護モード有効なサイトのキャッシュ
C:\Users\<ユーザー名\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\low\<ランダムな 8 桁の英数字フォルダー>
*Content.IE5 直下の index.dat というファイルがインデックス情報のファイルです。
保護モード無効なサイトのキャッシュ
C:\Users\<ユーザー名\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\<ランダムな 8 桁の英数字フォルダー>
*Content.IE5 直下の index.dat というファイルがインデックス情報のファイルです。
イメージとしては index.dat ファイル内に「どのサイトからどのような応答で取得したか」という情報が含まれており、この情報と合わせそれぞれの実ファイルが管理されています。
キャッシュの容量
------------------------------------------------------------
IE のキャッシュ全体のサイズは [インターネットオプション] - [全般タブ] から開くダイアログの [インターネット一時ファイルと履歴の設定] の [使用するディスク領域] で設定できます。
ただし、この値はあくまで『目安』の値であり「制限」ではありません。
ここで「目安」とお伝えしたのは、この設定値は「このサイズまでしかキャッシュを作成しない」という制限値ではなく、「この設定値の値に近づくように調整される」という値である為です。
例えば、使用するディスク領域の設定が100 MB であるとします。
普段、IE を利用しページを閲覧しており 100 MB に近いサイズのキャッシュが保持されている状況とします。ここで、Web ページの構成やダウンロードで 50 MB のサイズのファイルを取得したばあい、IE ではこのファイルを取得した場合にキャッシュを作成します。(100 MB 指定がある為「キャッシュをしない」という動作にはなりません)
この場合、100 MB の指定を超えるキャッシュが保持されている状況になります。
ただし、指定値を超えているとその後 IE 利用中に内部の処理ロジックで長期間参照されていない、利用頻度の低いものを判断し設定値を目安に保持しているキャッシュを削除しその容量を調整します。
一時ファイル (Temporary Internet Files フォルダー)が肥大化した場合の解消方法
================================================
どのような場合にキャッシュフォルダーが肥大化するか
------------------------------------------------------------
IE サポートチームにお問合せを頂く現象の中に、「ディスク容量が圧迫され確認すると Temporary Internet Files フォルダー」のサイズが数 GB などの大きさになっているというご質問があります。
([使用するディスクの領域] の設定は最大でも IE7 以降の場合 1024 MB までの設定しかできません)
キャッシュファイルはインデックス情報と関連づけて保持されていますが、この関連づけが不整合な状態となり正常な管理がされていない状態である場合にこのような現象が発生します。
このような現象/状況を私たちは「インデックスの破損」(キャッシュの実ファイルとインデックス情報が崩れた状態)と呼んでいます。
インデックス情報の破損の要因は様々に考えられ、残念ながら破損した状態の後からその理由を遡って確認する事ができません。
お問合せを頂くのが「現象発生後」でありログなどの記録が残らない処理になること、また、「IE のキャッシュ」とお伝えしていますが実際は「他の IE コンポーネントを利用して開発されているアプリケーション」でも同一のキャッシュが利用される為、残念ながら、この点ではご支援を差し上げることが難しくなっています。
例えば、要因として考えられるものとしては「実ファイルのみを直接削除してしまった」、「(ユーザー操作なども含め)キャッシュの削除を行おうとしたが、実ファイルが他のプロセスにロックされていて削除できなかった」などです。
すなわち、「正常な操作でキャッシュの削除が行われなかった場合」や「キャッシュに対する操作が何かしらの要因で妨げられてしまう」事でインデックス情報と実ファイルの整合性が崩れてしまい、結果としてキャッシュサイズの正常な管理ができなくなってしまい肥大化してしまいます。
解消方法
-----------------------------------------------------------
このような現象が発生した場合、「Temporary Internet Files フォルダー」を「フォルダーごと」すべて削除し、再作成する事が対処の方法となります。
ここでご注意頂きたい点としては、インデックス情報は「ユーザーがログイン時にメモリ上に読み込まれロック」されますので「ユーザーログイン中は削除できない」という点です。
ではどのように削除するかというと、最も簡単な方法は「ご利用の端末で新規に管理者権限のあるユーザー」を作成し、そのユーザーでログインし現象が発生しているユーザーアカウントの Temporary Internet Files フォルダーを削除してしまう方法です。この操作でフォルダーを削除後、現象の発生していたユーザーでログインすると、新しい index.dat ファイルを含む Temporary Internet Files フォルダーが再作成されます。
インデックスが破損している状態の場合、Temporary Internet Files フォルダーが肥大化するだけでなく、ページの表示時に一部正しく表示されない、ダウンロードが正常に行えないなどといった現象の発生も報告されています。
ご利用の端末でこれらの現象が発生する場合、上記の方法でキャッシュを完全にクリアする事で現象が改善するかもお試しください。
このような現象と同様の解決方法については以下のような KB でも紹介されていますのでご参考としてご参照ください。
Internet Explorer で Web ページを開けず、エラー メッセージ "ページを表示できません" が表示される
http://support.microsoft.com/kb/293402/
Internet Explorer を使用してファイルをダウンロードできない
http://support.microsoft.com/kb/306837/
コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。