まだ調査中なので短報です。
ktm@sのサーバーがPHP7になったことに絡んで、以前のサーバーで動かしていたWordPressを移植しました。
それ以降、そのWPがとにかく重く、エラーログが出まくる状況に。
ktm@sが1個ずつプラグインを止めていってとたんに軽くなったのがSNS Count Cacheというプラグインでした。
ここまでnk.
——————————————-
ここからktm@s
本件はnk.とxx2zzが少々つついたが、WPの闇があまりにも深すぎるため無かったことウェーブされた。
無かったことになったが下書きは残っていたので、一応判ったことだけメモしておこうと思う。
あらかじめ書いておくが、SNS Count Cacheが悪いとかそういう記事じゃない。
何が重くさせたかは判ってるが、何故そうなったかまではたどり着いてないので今後調べるときのメモだよ。
SNS Count CacheがWordPressをぶっ殺す件のメモ
前提条件
Debian jessie + Apache2.4 + php7
WordPress4.6.1 + SNS Count Cache0.9.2
Apache2.4 + php5.6環境からの引越しをした後、次項の現象が発生しはじめた。
このVPS(php5.6)では発生していない。
発生する現象
最初はサクサク見れていたサイトがだんだん重くなり始める。
さらに放置すると500エラーが出始め、メモリ・CPUリソースを荒食いする。
結果的にサイトが事実上見られなくなるどころか管理画面すら死ぬ。
以下は問題が解決した直後(というかSNS Count Cacheを止めた直後)のリソースモニター。
何故重いか
wp-cron.php というcronのような機能があり、そこにSNS Count Cacheのスケジュールが異常な数登録されたことによるリソースの荒食い。
以下の2つが計512KBもDBに登録されていた。きりがいいので恐らく512KBが上限でこの程度ですんだのかな。
- scc_share_restorecache_exec
- scc_share_lazycache_exec
何がそうさせているか
なんらかの原因でキャッシュがずっと保存できなくて、アクセスごとに毎回cronが追加されているらしい。
xx2zzがPHP7+SCC0.9.2環境を作りテストしたところ再現できなかったので、単にphp7+SCC0.9.2が悪いということでは無さそう。
WordPressを丸ごと引越しさせる際に不備があった可能性も十分ある。
data以下のキャッシュファイルは存在するけどWinSCPでは表示もされないし、それをもってきてないことにより発生したエラーなのか、あるいはWPかSCCのどちらかがphp7で仕様変更があった関数を使っていて意図した動作をしない箇所があるのかもしれない。
何はともあれ優先度の低いタスクなので、いずれ思い出して原因を突き止める際のメモとしてここに残しておく。
コメント
[…] https://vivibit.net/php7-scc/ […]