フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月24日 at 15:40

GCP上で複数台サーバ運用している状態なのですが、キャッシュを5分おきにクリアする設定にすると、1時間に1度くらい、応答を返さなくなるような挙動をします。
キャッシュクリアを手動のみにすると収まりますので、事象としてはこれが原因で間違い無いようです。
数台のサーバ全てで同時に発生してしまい、これだとStopTheWorldのような状態になってしまうということなのですが、これはこのような仕様でしょうか?
個別に更新したページのみキャッシュクリアして行くような運用が必要でしょうか?
その場合、時刻指定での公開機能(権限設定にて実現)が結局使えない(手動でキャッシュクリアが必要)、というような形になってしまい、なんだかなぁという感じです。
なにか事例とか、そういうもんだよとか、こうすれば回避出来るとかありましたら教えてくださいませ。

以下、環境情報です。

# concrete5 Version
5.6.3.3

# concrete5 Packages
Bootswatch (0.9.1), Open Graph Tags Lite (1.5), SuperMint Theme (2.0.7.2).

# concrete5 Overrides
blocks/page_list, languages/he_IL, languages/fa_IR, languages/nl_NL, languages/it_IT, languages/zh_TW, languages/vi_VN, languages/es_MX, languages/es_PE, languages/ar, languages/pt_PT, languages/de_DE, languages/cs_CZ, languages/el_GR, languages/nb_NO, languages/zh_CN, languages/ro_RO, languages/sv_SE, languages/es_AR, languages/da_DK, languages/es_ES, languages/sk_SK, languages/fi_FI, languages/ru_RU, languages/sl_SI, languages/tr_TR, languages/fr_FR, languages/ja_JP, models/page_update.php, themes/super_mint

# concrete5 Cache Settings
Block Cache - On
Overrides Cache - On
Full Page Caching - On - If blocks on the particular page allow it.
Full Page Cache Lifetime - Only when manually removed or the cache is cleared.

# Server Software
Apache

# Server API
apache2handler

# PHP Version
5.3.3

# PHP Extensions
apache2handler, apc, bz2, calendar, Core, ctype, curl, date, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, json, libxml, mbstring, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, Reflection, session, shmop, SimpleXML, sockets, SPL, sqlite3, standard, tokenizer, xml, zip, zlib.

# PHP Settings
max_execution_time - 30
apc.max_file_size - 1M
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 8M
safe_mode - Off
safe_mode_exec_dir - no value
safe_mode_gid - Off
safe_mode_include_dir - no value
sql.safe_mode - Off
upload_max_filesize - 2M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 100000
pcre.recursion_limit - 100000
session.cache_limiter - nocache
session.gc_maxlifetime - 7200
safe_mode_allowed_env_vars - PHP_
safe_mode_protected_env_vars - LD_LIBRARY_PATH

タグ:

Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月24日 at 15:47
毎度全キャッシュクリアすると、オブジェクトキャッシュやブロックキャッシュまで全てクリアされるため、非効率ですし、5分で終わってない可能性もあります。5分間のタイムラグを許容できるのであれば、フルページキャッシュの有効期間を5分に設定することが望ましい設定ではないかと思います。どうしても一括でクリアしたい場合はフルページキャッシュの向き先をMemcacheとかDBに変更するのもアリです。
 

Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月25日 at 11:10
毎度クリアしたいわけでは無いのです。
時刻指定で記事を有効化した場合に、トップページがフルページキャッシュされてるとトップに新しい記事が表示されないのです。なので、定期的にクリアするような設定にしました。
今試してますが、トップページだけでもキャッシュクリアするとそのタイミングで全てのサーバがエラーを返すような状態になりました。。。
時刻指定でトップページのみキャッシュクリアが出来れば問題無いです。
もしくは、手作業でサーバ側のキャッシュをクリアするようなことが可能でしょうか?
そうすればcronとかで仕込むことが出来るのですが。。
トップページのみのキャッシュ生成で停止に見舞われるような速度になること自体もおかしいような気もしますが、サーバは3,4台立ち上がっている状態なので、一台づつクリア出来ればある程度解消されると思うのですが。。
 

Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月25日 at 16:28
エラー内容が分からないと、なんとも言えない気がしますが、PHPのエラーですか?Apacheのエラーですか?
 

Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月28日 at 14:23
すみません返信遅くなりました。
症状としては、Apacheが応答しなくなります。
レスポンスが無い状態だったと思います。
再現出来るようにしてみます。
 

Re: Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月28日 at 16:59
cacheフォルダの削除を実行するとシステムダウンが発生します。
再現性があるのですが、Concrete5でこんな事例ありますか?
そもそもcacheフォルダの削除はNGなのでしょうか?
もし分かれば教えてください。以下、ログです。

[ayatoshi@toushin-web-group-2-ozmi cache]$ sudo rm -fr ./*
rm: cannot remove `./pages': Directory not empty
[ayatoshi@toushin-web-group-2-ozmi cache]$ ls
pages
zend_cache---13aa4280b57cbbfb5f9066018aeb1340Zend_Translate_e058e179eb30c9
26773e7d39e399324d_Gettext
zend_cache---13aa4280b57cbbfb5f9066018aeb1340Zend_Translate_efe10223486e77
1632dec4e15c9db29f_Gettext
zend_cache---13aa4280b57cbbfb5f9066018aeb1340Zend_Translate_Gettext_Option
s
zend_cache---internal-metadatas---13aa4280b57cbbfb5f9066018aeb1340Zend_Tra
nslate_e058e179eb30c926773e7d39e399324d_Gettext
zend_cache---internal-metadatas---13aa4280b57cbbfb5f9066018aeb1340Zend_Tra
nslate_efe10223486e771632dec4e15c9db29f_Gettext
zend_cache---internal-metadatas---13aa4280b57cbbfb5f9066018aeb1340Zend_Tra
nslate_Gettext_Options
[ayatoshi@toushin-web-group-2-ozmi cache]$
Broadcast message from root@toushin-web-group-2-ozmi
(unknown) at 18:10 ...
The system is going down for halt NOW!
 

Re: フルページキャッシュを5分毎にリセットするとストップザ・ワールド?状態になる。

2015年12月25日 at 12:34
取り急ぎ、
・concrete5設定上のキャッシュクリアは無し
 →キャッシュクリアのタイミングで全サーバ死亡状態になるため。
・個別のサーバのキャッシュクリアをOS上で行う
 →時間差で1台づつ行うことで無駄に全クリアになってしまうがやむを得ない。
 →上記はツールを作って時間起動出来るようにする。

という対応を取ることにしました。