概要
ネットブートで起動した端末を利用中に、なんらかの要因によりキャッシュの容が不足した場合には、端末の動作が不安定になり最終的にフリーズし利用できなくなります。
キャッシュの空きが不足するのはいくつかの要因が考えられます。
- キャッシュ領域の容量が適切ではない
- 1イメージあたりの ReadCache, WriteCache の消費量が大きい
- 使用していないイメージのキャッシュが残っている
- ReadCache, WriteCache の最小サイズの設定値が適切ではない
本ドキュメントでは、キャッシュの空き領域が不足を防ぐための設定手順・調査手順を説明します。
詳細
ほたてのキャッシュ領域は、ディスクイメージの ReadCache と WriteCache のデータを保持するためのパーティションです。
- ReadCache のデータはディスクイメージごとに管理されます。
- WriteCache のデータは端末の起動から停止(シャットダウン)までの間保持されます。
※永続的キャッシュ(writecache persistent)は停止後も維持されます。
次の手順で、ReadCache および WriteCache の消費サイズを確認して、適切な動作になるように設定してください。
キャッシュ領域の容量が適切かどうかを確認する
キャッシュ領域の容量に対しディスクイメージの割り当て数が適切かどうかご確認ください。
一般に、ネットブートにおける 1イメージあたりの ReadCache の消費量の目安は 40 ~ 60 GB 程度です。 多くのアプリケーションを使用するような環境では、これよりも多く消費するかもしれません。
WriteCache の目安は 10 ~ 30 GB 程度です。
ディスクイメージの割り当てが1つのみの端末においては 50 ~ 90 GB 程度の領域を確保できるようにします。 複数のディスクイメージを割り当てる場合には、以下の計算式でキャッシュ領域の容量を見積もります。
ReadCache の消費量 × 割り当てイメージの数 + WriteCache の消費量
キャッシュ領域の容量が適切でない場合は、起動するディスクの種類を限定することを検討してください。
ReadCache の消費量を確認する
ほたてモニターコンソールで ReadCache の「データ量」と「消費量」を確認してください。
- 1イメージあたりの ReadCache の「消費量」の目安は 40 ~ 60 GB 程度です。
- 「消費量」が「データ量」の 2 ~ 3 倍程度であれば妥当です。
※ ほたての仕様上「データ量」よりも「消費量」の方が大きな値となります
ReadCache の「消費量」が大きいとき
ReadCache の「消費量」が 40 ~ 60 GB を超える場合には、次の点を確認してください。
-
ネットブートの最適化設定ができているか?
ReadCache の「消費量」が多い場合、何らかの理由により最適化設定が無効化されている可能性があります。
NetbootOptimizer を起動して、最適化設定がすべて適用されているかご確認ください。
NetbootOptimizer は、ほたてのダウンロードページ からダウンロードできます。 -
端末内でセキュリティソフトによる「フルスキャン」が走っていないか?
ReadCache の「消費量」が多い場合、端末内でセキュリティーソフトによるフルスキャンが走っている可能性があります。 セキュリティソフトのフルスキャンがスケジュール実行されているようであれば無効にしてください。
フルスキャンが実行されると、ディスクイメージ内の全ファイルがスキャンの対象となる可能性があります。 これにより普段使用することのない多くのファイルが ReadCache としてキャッシュ領域を大量に消費します。
また、セキュリティソフトによっては「スキャンを実行したことのないファイルが存在するとき、そのファイルを随時スキャンする」ようです。 この問題への対処としては、「ディスクイメージを更新状態にして端末を起動し、そこでフルスキャンを手動実行する」ことが有効なことがあります。 (一度スキャンをしておくことで、通常状態でディスクを起動したときにスキャンしないようになります) -
読み込みを大量に行うツールやアプリケーションが実行されていないか?
読み込みを多く行うツールやアプリがあると、当然キャッシュ領域を多く消費します。 リソースモニターによりディスクの挙動を監視し、読み込み処理を多く行うアプリケーションがないかご確認ください。
ReadCache の「消費量」が「データ量」の 5 倍を超えるとき
ディスクのフラグメント化によりキャッシュの効率が悪くなっている可能性があります。
端末が稼働するために必須のファイル群のデータが、ディスクイメージ内で各所に分散して配置されるような状態になると、実際に読み込んだデータ量よりも多くのキャッシュ領域を消費するようになってしまいます。 過去の事例として、ReadCache の(実際に読み込んだ)データ量が 17~18 GB 程度に対して消費量が 60 GB 程度になるような場合がありました。
この問題への対処として「ディスクイメージを更新状態にして端末を起動し、ディスクイメージ内のデータのデフラグを実施する」ことが有効なことがあります。
WriteCache の消費量を確認する
ほたてモニターコンソールの WriteCache の [消費量] を確認してください。
同じディスクイメージを使用する端末のうち、最も消費量が大きいものを基準として WriteCache の消費量を見積もります。
WriteCache の「消費量」が大きいとき
WriteCache の「消費量」が 10 ~ 30 GB を超える場合には、ディスク内でファイル配置の最適化やデフラグ処理が実施されていないかを確認してください。
端末が通常起動しているとき(端末内のキャッシュを利用するとき)にこのような処理が走ると、C ドライブ(仮想ディスク)への書き込みが多く発生し、結果としてキャッシュ領域を多く消費してしまいます。
下記のような処理が実行されていないか、設定をご確認ください。
- 書き込みを大量に行うツールやアプリケーションが実行されていないか?
書き込みを多く行うツールやアプリがあると、当然キャッシュ領域を多く消費します。 リソースモニターによりディスクの挙動を監視し、書き込み処理を多く行うアプリケーションがないかご確認ください。 - Windows Update や アプリケーションの自動更新によるダウンロードが発生していないか?
端末を起動するたびにダウンロードが繰り返し実行されていると、ディスク書き込みが発生します。 これもリソースモニターの監視により発見できます。
ReadCache・WriteCache の最小サイズを設定する
過去に使用したイメージは意図的に削除しない限りキャッシュ領域に残り続けます。 使用していない ReadCache のデータがあることで、現在利用中のディスクイメージの ReadCache や WriteCache が使用できる空き容量が不足するケースがあります。
これを防ぐためには、ReadCache と WriteCache の最小サイズとして適切なサイズを設定してください。
- ReadCache の最小サイズ
基本的には 20GB (デフォルト値)~60GB の範囲で設定してください。現在の消費量は ReadCache の消費量を確認する で確認できます。 - WriteCache の最小サイズ
WriteCache WriteCache の消費量を確認する で確認した「消費量」より少し大きな値を選択してください。
設定手順は、ほたてのバージョンにより設定方法が異なります。
-
2023年8月版 以降のバージョン
- ほたて管理コンソールの [ブートメニュー管理] - [ブートメニュー] - [メニューアイテム] - [メニューアイテムの設定] を開きます。
- 詳細設定の項目の「ReadCache 最小サイズ (ネットブート)」「WriteCache 最小サイズ」の値を変更して「適用」ボタンをクリックします。
-
2022年1月版 以前のバージョン
以下の手順を全てのほたてサーバーに対して実施します。HotateBootMenuServer.dll.config
をテキストエディタで開くReadCacheSize
およびWriteCacheSize
の値を変更する- HotateBoot BootMenu Server サービスを再起動する
端末起動時に最小容量を確保できない場合の動作
ネットブート起動時に、キャッシュ領域に ReadCache と WriteCache の最小サイズが確保できるかのチェックが行われます。
それぞれのキャッシュの最小サイズ(デフォルト値)は下記の通りです。
- ReadCache :20GB
- WriteCache:10GB
なお、起動するディスクイメージの ReadCache や WriteCache が既に存在する場合には、最大容量までの残り容量が確保できるかのチェックを行います。
最小サイズを確保するための空き容量が不足する場合には、必要な空き容量が確保できるまで、最終アクセスが最も古い ReadCache から順に削除します (フルキャッシュの ReadCache は削除の対象にはなりません)。すべての ReadCache を削除しても空き容量を確保できない場合は、ReadCache 無効で起動します。
Tips
キャッシュの状態を確認するコマンド
HotateClient.exe ShowCache
ReadCache の消費量は HotateClient.exe の ShowCache コマンドにより確認できます。 HotateClient.exe はクライアント側のツールです。
次のコマンド実行例を参照してください。
> cd C:\Program Files\CO-CONV\HotateBoot\Client
> HotateClient.exe ShowCache
Cached ratio:
* ReadCache: 0.8 % ( 1.6 GB / 180.1 GB)
* WriteCache: 0.0 % ( 0.2 GB / 180.1 GB)
Cache partition usage:
* ReadCache: 10.3 % ( 9.2 GB / 88.1 GB)
* WriteCache: 1.5 % ( 1.4 GB / 88.1 GB)
-------------------------------------------
* Total: 12.0 % ( 10.6 GB / 88.1 GB)
Cached ratio は、キャッシュを貯めた(読み込んだ)データ量、 Cache partition usage は、キャッシュパーティションを消費したサイズ を意味しています。 (上記コマンド実行例の環境の内蔵ドライブは128GBです)
HotateClient.exe DumpCache
ShowCache コマンドで確認できるのは、現在利用中のディスクイメージに関する情報のみです。DumpCache コマンドを実行すると、起動中のディスクイメージ以外の全てのキャッシュ情報が表示されます。出力されるデータの表示形式は ShowCache とは異なります。
キャッシュを削除するコマンド
HotateClient.exe ClearCache コマンドを使用して、端末内のキャッシュを全て、または個別に削除することができます。 キャッシュの削除は次回端末を起動した際に行われます。
- 端末内の全てのキャッシュを削除する:
HotateClient.exe ClearCache /a
- 端末内の特定の ReadCache を削除する:
HotateClient.exe ClearCache /n キャッシュ番号
キャッシュ番号には、削除したいキャッシュの番号を指定してください。
キャッシュ番号は、HotateClient.exe dumpcache により確認できます。
HotateClient.exe ClearCache コマンドには、上記以外のオプションもあります。オプションの一覧と説明については、ClearCache コマンドを引数なしで実行して表示される結果をご確認ください。