TechSite.blog powered by shimarin @ayurina

IT技術から管理職・組織運営Howtoまで、日々の気づきを掘り下げるブログです。

WordPress Popular Postsが遅い?memcachedでキャッシュ設定したけど駄目だった話

time 2020/05/11

久々にブログサーバーの性能改善に取り組んでみました。結論からいうと、いろいろやって、WordPress Popular Postsの設定以外は戻しちゃったんですが、チューニングはやっぱり楽しいですね。はい。

sponsored link

WordPressがいまいち遅いので調べてみた

このブログサーバー確かにちょっと遅いんです。Google Search Consoleで「遅いよ」って言われたしPagespeed Insightsでも「遅いよ」って言われます。これは何かしたほうが良いのかな、と思っていろいろトライしてみました。

PHP最新化と「サイトヘルス」

まずはphp-fpmを最新の7.4まで上げてみました。ベースとなっているDockerイメージをUbuntu 20.04まで上げて、phpも7.4まで上げてみました。あまり性能が上がった気はしなかったのですが、精神衛生上、バージョンは高いほうが良いですね。

ところで、Wordpressの最近の版からでしょうか、「サイトヘルス」っていうメニューが出るようになってるんですね。

phpのバージョンが低い件も、この画面で指摘されていました。いくつか足りないモジュールなどの指摘もあったので、これも適応しておきました。他にもいろいろな項目がチェックされているようなので、このメニューは便利だと思います。

WordPress Popular Postsが遅い件

ここからが本題なんですが、何か大きくて重いSQLでも飛んでいないかとログレベルを上げたりして調べてみたところ、WordPress Popular Postsがかなり大きなクエリを投げていることが分かりました。

調べてみると、WordPress Popular Postsの内部テーブルで、モジュール稼働開始時からの日毎のページアクセス数の統計を持っていることが分かりました。レコード数は軽く数十万件です。これは遅くなるわな、と。

ネットで調べてみると、だからWordPress Popular Postsは遅くて駄目、って意見が見られましたが、何のことはない、これ性能改善するための設定項目もちゃんとあるんですね。

ログの保存期間はデフォルトで「無限」なので、これを短くすればログレコード数を抑止できると思います。キャッシュを有効化することで、データアクセスを減らして性能を上げたり、アクセスそのものそ全数からサンプリングに間引くことで、性能を確保することもできると。

とりあえずキャッシュの有効化を行うことでアクセス量を減らしてみました。この辺、ちゃんと設定してあげると、適切に運用することができると思います。

オブジェクトキャッシュは微妙だった

ところで・・・すっかり忘れていたんですが、このサイトでは一般にWordpressサイトでは適応されているオブジェクトキャッシュは使っていません。なんでそうしていたかも忘れてしまっていたのですが・・・・

WordPress Popular Postsのヘルプページを見ると、さらにオブジェクトキャッシュを有効化することで、アクセス数のカウント自体にもキャッシングをできるとの記述があったので、試しにmemcachedでオブジェクトキャッシュを有効化してみました。

で、結果がこちら・・・

むしろ遅くなりました。オブジェクトキャッシュ有効化したほうが遅いです。なんでやねん。

memcachedの設定やモジュールのバージョンが古いのかとか、いろいろ調べて試してみたけど原因はわからず、結局オブジェクトキャッシュを行うのはやめて戻してしまいました。

・・・・ここまで来て、過去の記憶が若干蘇りました。だからこのサイトではオブジェクトキャッシュ使ってなかったんだな。下手なキャッシュ使うより、DBのトランザクション系をチューンナップしたほうが速くなることもあると。

このサイトのデータベースはMariaDBのフロントに接続永続化のためのMaxscaleを入れてあり、この構成がやはり強力だったんだっけ、と再確認しました。加えてphp-fpm+FastCGI Cacheも入っているので、フロントでのキャッシュも効くようになっています。なので、わざわざオブジェクトキャッシュしなくても良かったということなんですね。

我ながら、過去の自分のノウハウにちょっと感心しました。なんでもキャッシュすれば速くなるとは限らないと。

DockerコンテナのOSイメージを最新化

その他、DockerコンテナのOSイメージをUbuntu 20.04に最新化し、中のモジュールも合わせて最新化して、一旦メンテナンスアップデートは終了となりました。

いろいろあって大変だったところもありましたが、やっぱりサーバーのチューニングは楽しいです。次はMariaDBのアップデートしようかなと思っています。

sponsored link

down

コメントする




このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

中の人

しまりん

しまりん

自称クラウドエンジニア。ブログサーバーの性能改善に勤しむ一方、新しい技術は「動かしてみないと」「触ってみないと」気が済まない性分です。 新しいiPhoneやっぱり楽しい。



sponsored link

アーカイブ