管理画面投稿ページの自動下書き保存に時間がかかる

ホーム フォーラム一覧 YASAKANI Cache フォーラム 管理画面投稿ページの自動下書き保存に時間がかかる

  • このトピックには8件の返信、2人の参加者があり、最後にAnonymousにより6年、 5ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #6212
    Anonymous
    メンバー

    お世話になっております。

    以前管理画面の重さのことで質問させていただいたものです。

     

    あの後も新規投稿画面にてプラグインを動作させないようにしているのですが、それでもWordPressの自動下書き保存プログラム(admin-ajax.php)のリクエストの際、YASAKANI Cacheを有効化していると保存に20秒以上時間がかかります。

    プラグインを停止させた場合は時間がかからないようになりました。

     

    下書き保存に時間がかかると、admin-ajaxを利用する他の処理が処理待ちの状態となり、実行に時間がかかります。

    もしも原因がわかるのであれば改善していただきたいと思っております。

     

    ↓下書き保存時のjquery.jsのログです。setTimeout(async)が何度か発生しているのが気になりました。

    send @ jquery.js:4
    ajax @ jquery.js:4
    j @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    setTimeout (async)
    k @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    i @ jquery.js:2
    fireWith @ jquery.js:2
    y @ jquery.js:4
    c @ jquery.js:4
    XMLHttpRequest.send (async)
    send @ jquery.js:4
    ajax @ jquery.js:4
    j @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    setTimeout (async)
    k @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    i @ jquery.js:2
    fireWith @ jquery.js:2
    y @ jquery.js:4
    c @ jquery.js:4
    XMLHttpRequest.send (async)
    send @ jquery.js:4
    ajax @ jquery.js:4
    j @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    setTimeout (async)
    k @ heartbeat.min.js:1
    m @ heartbeat.min.js:1
    g @ heartbeat.min.js:1
    setInterval (async)
    d @ heartbeat.min.js:1
    d @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1
    (anonymous) @ heartbeat.min.js:1

     

    また、キャッシュを削除した際は、軽くなるのか?と検証しようと思ったのですが、キャッシュ削除の時点でも↓のエラーが発生しました。

    Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 149725 bytes) in /home/~~~/public_html/wp-content/plugins/yasakani-cache/ext_pdo.php on line 110

     

    現在メモリ上限は512MBに設定しているのですが、これでも足りないということですよね?

    メモリ上限を上げることは可能なのですが、何か他に解決策などあれば教えていただきたいと思っております。

     

    よろしくお願いいたします。

    #6213
    enomoto
    キーマスター

    これの関連ですね

    管理画面の投稿ページが重い
    ホーム › フォーラム一覧 › YASAKANI Cache フォーラム › 管理画面の投稿ページが重い このトピックには9件の返信、2人の参加者があり、最後にe…

    あの後も新規投稿画面にてプラグインを動作させないようにしているのですが、それでもWordPressの自動下書き保存プログラム(admin-ajax.php)のリクエストの際、YASAKANI Cacheを有効化していると保存に20秒以上時間がかかります。

    既存ページの更新時に以前行った対策が効かず時間がかかっているということでしょうか

    同じ状況を再現できればいいのですが、現時点では原因不明なので対応が難しい状況です m(__)m

    jQueryの ajax のタイムアウトとの関連も不明です

    メモリに関しては どの程度必要かは一概には言えませんが、512M で足りないというのは考えにくいです

    YASAKANIキャッシュのデータベースが何らかの原因で破損している可能性もありますので、一度、プラグインをアンインストールして(この時に /wp-content/yasakani-cache/yasakani_cache.db ファイルが自動的に削除されます)から、再度、プラグインをインストールして症状が改善するか試してみて下さい

    ※設定値や修正コードクリアされます

     

    #6214
    Anonymous
    メンバー

    ご返答ありがとうございます。

    アンインストール→再設定&念のためキャッシュ削除

    をしたところ、症状が改善しました。

     

    また、前回追加したコードを用いなくても、新規投稿ボタンを押したときのロードが遅い現象も改善しました。

    これから各記事のキャッシュが溜まっていくにつれ、症状が再発する可能性もありますので、ひとまずこれで様子を見てみたいと思います。

    #6245
    Anonymous
    メンバー

    前回の書き込みから20日経ちましたが、また同じような状況になりました。

    そのため再度プラグインのアンインストール→インストールを行うことで状況が改善しました。

    これは再度データベースが破損したということなのでしょうか?

    また、再インストールに伴い、プラグインのバージョンアップを行いました。(うろ覚えですがバージョン1.3.2→1.4.5)

    これによりデータベースが破損しにくくなっている可能性はありますか?

    #6246
    enomoto
    キーマスター

    データベースが破損しているかどうかは、データベースファイルを直接調べてみないとなんともいえません。

    ただ、20日たって再現したというのはデータベースファイルのサイズが大きくなってきたときに何か問題があるのかも知れません

    ちなみにサイトで公開している記事数はどのぐらいでしょうか?

    仮にサイトで500記事あるとすると、キャッシュデータとしては各記事毎に1つというわけではなくて、このキャッシュプラグインでは1つの記事に対してアクセスしてきたURLを元にキーコードを生成して保存しています

    どういうことかというと 通常のパーマリンクによるアクセスやショートURLによるアクセス、あるいは post?=xx というような形式のアクセス、AMPサポートしているなら ?amp=1 というようにクエリーを含めたURLをキーとして保存するので一つの記事に対してキャッシュデータは4個ぐらいは普通に生成されます

    従って500記事だと2000-3000程度のキャッシュデータが作られているかも知れません

    本来なら記事数なんて日々何十本も増えていかないと思うので日にちが立ったからといってデータベースのサイズが特別大きくなるわけではないのですが、このような方式でキャッシュを保存している関係上URLに不必要なクエリーが付いている場合(不正アクセスの場合が結構ある)に WordPress がそれを 404(ページがありません)と判断せずに何らかのページアクセスとして表示してしまうとそれをキャッシュとして保存するので必要以上にキャッシュファイルが大きくなる場合もあります

    キャッシュクリアを実行すれば、SQL操作としてはキャッシュデータテーブルを一旦消してから再生成していますので、対策としては、定期的にキャッシュクリアを行っていただくしかありません

     

    ちなみに Ver1.4.5 では、キャッシュクリア時や記事更新画面でキャッシュの有無を判断する時に使っていたSQLで SELECT * というように本来判断には不要なデータまで取得して判定しようとしていたので(このためにおそらく前回報告のあったメモリーエラーが発生)、ここを SELECT key と必要なデータだけ取得するように変更したので、動作が重くなった場合は、アンインストールー>インストールしなくてもキャッシュクリアの実行だけでいけると思います

    また、Ver1.4.5 で追加した CSS, JS の小さなファイルのインライン埋め込み機能はキャッシュデータが大きくなるので使わないほうが良いかもしれません

    以上

    いろいろ想像しながらお答えしましたが的外れかも知れません

    他の方で同じような症状になる方がいましたら情報をお寄せください m(__)m

     

    #6247
    Anonymous
    メンバー

    キャッシュ保存の仕様など、ご丁寧に説明していただきありがとうございます。

    サイトで公開している記事数は約1000記事となります。

     

    >動作が重くなった場合は、アンインストールー>インストールしなくてもキャッシュクリアの実行だけでいけると思います

    承知しました。

    次回からはアンインストールせずにキャッシュクリアを実行します。

    しかしキャッシュクリアについて1点疑問があります。

    キャッシュ有効時間を8時間に設定しているのですが、今後同じような状況になった場合、手動でキャッシュクリアを行うことで改善されるのでしょうか?

    それとも、8時間後に各記事のキャッシュがクリアされると考え、私の方で手動削除する必要はないのでしょうか?

    #6248
    enomoto
    キーマスター

    キャッシュデータ自体は、有効期限が切れた時にクリアしているわけではなく期限切れの古いデータとしてキャッシュデータのテーブルに残っています

    有効期限が切れた次の同じURLアクセスの時にキャッシュを使わない通常の WordPress の出力を行い、その出力データと新たな有効期限データを古いキャッシュデータに対して上書き更新します

    一方、キャッシュクリアボタンは内部で使用しているSQLiteデータベースのキャッシュデータテーブル自体を一回消して再生成するので、キャッシュデータが消されて初期のキャッシュデータテーブル状態に戻ります

    従って、重くなる原因がキャッシュデータのサイズに関連していると仮定すると、同じような状況になった場合は、手動でキャッシュクリアを行ってください。

    また、WordPress の設定値や、プラグインやテーマの設定変更、追加、削除等を行った時には手動でキャッシュクリアする必要がありますので忘れずに実行してください

     

    #6249
    Anonymous
    メンバー

    詳しい仕様を説明していただきありがとうございます。

    わかりました。

    #6291
    Anonymous
    メンバー

    報告します。

    アンインストールを行わなくても、キャッシュクリアを行う事で動作が軽くなることを確認しました。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。
go-to-top