今回紹介するのは kusanagi fcache コマンドです。
そもそも fcache とは KUSANAGI 上では nginx の FastCGI キャッシュ機能のことを指します。
FastCGI とは、サーバー上でプログラム( PHP など)で動的にページを作成する仕組みのことです。
つまり、 FastCGI キャッシュとは FastCGI で作成されたページをキャッシュとして保存しておき、次に読み込まれた際にまた動的に作るのではなく、既に作られて保存されたページを表示する仕組みです。
簡単な図で示すと以下のようになります。
当然ですが、静的コンテンツ(画像、スクリプトファイルなど)はキャッシュされません。
なお、KUSANAGI に搭載されている Web サーバーは nginx と Apache の2つがありますが、 fcache の機能は nginx のみ利用できるので注意してください。
KUSANAGI のキャッシュ機能には他にも bcache や、先日追加されたテーマアクセラレーターがあります。
テーマアクセラレーターについては、先日コラムにも載りましたのであわせて読みますと、より理解が深まると思います。
KUSANAGIプラグインの「テーマアクセラレーター」の紹介 – KUSANAGI Tech Column
それでは kusanagi fcache コマンドでできることを一つずつ見ていきましょう。
fcache 機能の状態を確認
対象のプロファイルの fcache 機能が有効かどうかを確認するためには、kusanagi fcache status
を使用します。
KUSANAGI 9 全般の話ですが、プロファイルの指定にはコマンドの最後にプロファイル名を指定するか、対象のプロファイルのディレクトリ( /home/kusanagi/(プロファイル名)
のディレクトリ)に移動してからコマンドを実行してください。
# kusanagi fcache status (プロファイル名)
fcache is off.
fcache completed.
#
上記の例では、 fcache is off.
と表示されていますので、fcache が無効であることが確認できました。
有効な時は fcache is on.
と表示されます。
fcache 機能の有効化
対象のプロファイルに対して fcache 機能を有効化するには、 kusanagi fcache on
を使用します。
# kusanagi fcache on (プロファイル名)
Turning fcache on.
reload completed.
fcache completed.
#
これにより対象プロファイルに対して fcache 機能が有効になります。
fcache 機能の無効化
対象のプロファイルに対して fcache 機能を無効化するには、 kusanagi fcache off
を使用します。
# kusanagi fcache off (プロファイル名)
Turning fcache off.
reload completed.
fcache completed.
#
これにより対象プロファイルに対して fcache 機能が無効になります。
fcache 機能でキャッシュされているファイルのクリア
対象のプロファイル配下でキャッシュされているファイルをクリアするには、 kusanagi fcache clear
を使用します。
# kusanagi fcache clear (プロファイル名)
Clearing fcache.
fcache clear completed.
fcache completed.
#
上の例では、対象のプロファイルで設定されている FQDN 配下の全てのキャッシュを削除します。
もし、FQDN 配下の全てのキャッシュではなく、FQDN 配下の特定ページ内のキャッシュだけを削除したい場合は、 --path
オプションを使用します。
# kusanagi fcache clear --path /page (プロファイル名)
Clearing fcache.
SUCCESS: smart:GET:http://(FQDN)/page/ cache was deleted.
SUCCESS: pc:GET:http://(FQDN)/page/ cache was deleted.
fcache clear completed.
fcache completed.
#
上の例では、http://(FQDN)/page
配下のキャッシュを削除します。--path
に /page/page2
という値を渡せば http://(FQDN)/page/page2
とより狭い範囲のキャッシュを削除することができます。
kusanagi fcache コマンドでできることは以上になります。
fcache 機能の特徴
KUSANAGI の fcache の機能にはいくつか特徴があります。
表示先環境によってキャッシュを分けている
先ほどの kusanagi fcache clear
のところで --path
を指定してキャッシュをクリアした際に、 SUCCESS に続く言葉として smart:
や pc:
と表示されています。
これは User-Agent の情報から表示先が PC かタブレット、スマートフォンかを判断し、自動的にキャッシュされるファイルを分けているためです。
POST 時や WordPress にログインしている場合などは、キャッシュを使用しない
POST した場合や URL にクエリストリング( URL の末尾の ? に続く文字 )が含まれている場合、WordPress にログインしている場合はキャッシュは使用せず、必ず動的に生成されたページを表示するようにしています。
キャッシュの有効期間は 10 分
キャッシュの有効期間は 10 分となっています。
10 分すぎるとキャッシュは自動的に破棄されます。
fcache 機能を有効にした場合の効果
fcache を有効化した際の効果のほどは弊社 kusanagi.tokyo に記載があります。
以下に引用します。
KUSANAGI 9では、一般的なクラウド環境 (*3) においてページキャッシュ利用時に1秒あたりの同時リクエスト数約25,000超 (HTTP時) 、ページキャッシュ非使用時に1秒あたりの同時リクエスト数約210超 (HTTP/HTTPSとも) を実現します。
また、標準のLAMP環境 (*2) と比べ、ページキャッシュ使用時に約2,330倍の、ページキャッシュ非使用時に約20倍の高速化を実現します。
*2: Microsoft Azure Standard D4as_v4インスタンス (2.35Ghz AMD EPYC 7452 プロセッサ 4 vCPU, 16GiB), Premium SSD LRS, 東日本リージョン, CentOS 7.9.2009, PHP 5.6.40, Apache 2.4.6, MariaDB 5.5.68, WordPress 5.8.2 で計測
*3: Microsoft Azure Standard D4as_v4インスタンス (2.35Ghz AMD EPYC 7452 プロセッサ 4 vCPU, 16GiB), Premium SSD LRS, 東日本リージョン, KUSANAGI 9.1.0-1, PHP 7.4.27, Nginx 1.21.4, MariaDB 10.5.13, WordPress 5.8.2 で計測
kusanagi.tokyo より KUSANAGIとは
このように、標準的な LAMP 環境と比べて、 fcache (ページキャッシュ)使用時には約2,330倍という高い効果を得られることが分かっています。
KUSANAGI の超高速 CMS 実行環境を実現するには必須の機能ですので、皆様ぜひとも活用してみてください。
KUSANAGI 9 コマンドのマニュアル
- fcache status : https://kusanagi.tokyo/kusanagi9/document/commands/#fcache_status
- fcache on : https://kusanagi.tokyo/kusanagi9/document/commands/#fcache_on
- fcache off :https://kusanagi.tokyo/kusanagi9/document/commands/#fcache_off
- fcache clear : https://kusanagi.tokyo/kusanagi9/document/commands/#fcache_clear