SynologyでWordPressを運用している時に、遅い!と感じる事態に遭遇しました。
そこで色々な対策を打った結果を下記に報告します。
1.正常なWordPressサイトの稼動状況
下図はこのサイト(https://nw.myds.me)のサーバの「リソース・モニター」画面です。
このサイトへのアクセスは600名/1日位ありますが、下図が対策後の正常な状態です。
■CPUはあまり利用していない
■ディスクI/Oはたまに多くなるが、すぐに収まる
■ネットワークもたまに多くなるが、すぐに収まる
■メモリは、常駐プログラムが増えると常時利用するメモリが増えます。
主なメモリ使用アプリは下記になります
アプリケーション | メモリ | 解説 |
Web Station | 95MB | Webアプリを処理するサーバ |
DSM内部サービス | 85MB | SynologyのOS(DSM)のメモリ利用量 |
Synology calendar | 62MB | カレンダーアプリケーション |
MariaDB10 | 60MB | WordPressのDB |
システムデータベース | 26MB | DSMが利用するDB |
Universal Search | 25MB | 検索エンジン |
Synology Drive Server | 25MB | Driveアプリケーション |
Synology Office | 24MB | オフィスアプリケーション |
PHP7.0 | 16MB | PHPアプリケーション |
Apache HTTP Server2.4 | 14MB | アパッチHTTPサーバ |
WebDAV Server | 10MB | WebDAVサーバ |
以下省略 |
2.異常な状態と対策の経緯
このサイトに起こった問題と改善履歴を記載します。
1.サイトの性能計測やサーバ稼動状況のチェック
以前はそんなにも気にならなかったが、明らかに遅くなった!と感じ様になりました。
そこで下記の事を検証してみました
1.Googleの「Speed Insights」での性能計測
モバイルの性能はあまり良くないが、PCはそれなりに性能が出ている。
しかし、実際のPCアクセスは遅い???
2.Synplogyの「リソース・モニター」での確認
■CPUが平均40~50%位で、たまに70~80%のオレンジゾーン入る事がある。
■ディスクアクセスが異常に多い
↓
このハード性能ではダメなのか?の心配がよぎりました。
2.プラグインの追加/削除
1.表示性能を上げる為のプラグイン「Native Lazyload」等を評価しようとしたが・・・
プラグインの追加はできるが、削除しようとするとDBが破壊!
「プラグイン操作→DB破壊→DB復元」を何回か繰り返した結果、下記の事が判りました。
私の場合は「SynologyにWebサービスを立ち上げる」でPHPエラーを検出させているので、
DBが破壊した時のプログラムは下記のプラグインである事が判明しました。
①All in One SEO(Googleアナリティクスとの連携で利用)
②WP Mail SMTP(お問い合わせメール送信で利用)
2.不具合プラグインの削除
単純にプラグインの「停止→削除」を行うとDBが破壊するので下記手順で行った
①プラグインプログラムのリネーム
「wp-content¥plugins」フォルダにある問題プラグインを下記に変更
■「all-in-one-seo-pack」を「_all-in-one-seo-pack」
■「wp-mail-smtp」を「_wp-mail-smtp」
②WordPressのプラグイン画面での操作
上記プラグインを削除
上記操作で、DBから削除すると共に①の「_」付きファイルも併せて削除してくれます。
③問題プラグインを削除した結果
■他のプラグインの追加/編集/削除が正常に行えるようになった
■「リソース・モニター」を見てみるとビックリ
性能が飛躍的に改善した!
よって、「all-in-one-seo-pack」と「wp-mail-smtp」を使わない運用に変更しました。
3.異常なプラグインの廃止に伴う代替手段
1.All in One SEOの廃止と新しい方法への変更
ALL in One SEOには色々な機能がありますが、私に関連する項目は下記の2つです
①XMLサイトマップの送信
私の場合はサイトマップの送信は「Google XML Sitemaps」プラグインを使っているので、この機能は利用していません。
②Googleアナリティクスとの連携
私は、この機能を利用する為に「ALL in One SEO」を利用していました。
考察
私のこのサイトのアクセス評価はGoogleの「Search Console」と「アナリティクス」で行っています。
これらはGoogleの別サーバで稼動しており、ここに「このようなアクセスがあったよ!」と情報が来ると、このサーバが色々な角度からアクセス分析を行ってくれます。
すなわち、このサイトのサーバ資源は使いません。
一方、「All in One SEO」等のSEOツールは、上記連携以外に自分でもアクセス解析を行い、有料版を使ってくれれば、もっと良くなりますよ!言っているので、このサーバのリソースを使うのは当然でした。思慮が浅かったです。
よって、有料版の利用を勧める様なプラグインはそれだけ、サーバリソースも食うと考えた方が良いと思いました。
そこで、Googleアナリティクスとの連携はプラグインは使わずに「トラッキングコード」方式に変更しました。
1.トラッキングコードの取得方法と設定
①アナリティクスのメニューの一番下にある下図をクリックします。
②表示された画面の真ん中の列に下図の様なプロパティが表示されます。
■プロパティがターゲットのサイトである事を確認後、トラッキング情報の下にある「トラッキングコード」を開きます。
③コードをクリップボードにコピーします。
④このサイトの「header.php」の中の「/head」の前に上記コードをペーストします。
以上でこのサイトにアクセスが来ると、その情報をアナリティクスに送ってくれるようになりました。
2.wp-mail-smtpの廃止と新しい方法への変更
昔のwp-mail-smtpプラグインは単純なプログラムでしたが、最近のバージョンは色々な機能が追加され複雑になってきました。
しかしこのサイトは「GmailのSMTP」からメールを送っているので、本家本元の「Gmail SMTP」を利用する事に変更しました。
Gmail SMTPプラグインで、GmailのSMTPからメールを送る方法
4.このサイトで利用しているプラグイン一覧
参考までに、このサイトで使っているプラグインをご紹介します。
これらのプラグインが稼動している状態が項番1の「リソース モニタ」画面になります。
No | プラグイン名 | 内容 |
1 | Advanced Editor Tools | TinyMCE Advancedの新名称
ビジュアルエディタを使い易くする |
2 | Akismet Anti-Spam | スパム対策ツール
セキュリティ強化 |
3 | Disable Gutenberg | ブロックエディター&ブロックウィジェットの無効化
昔のビジュアルエディタが使えるようになる |
4 | Gmail SMTP | WordPressからGmailのSMTP経由でメール送信するツール |
5 | Google Authenticator | WordPressを2段階認証にするツール。 セキュリティ強化 |
6 | Google XML Sitemaps | サイトマップを検索エンジンに渡すツール
SEO対策 |
7 | HTML Editor Syntax Highlighter | TinyMCEには「ビジュアル」と「テキスト」がある。
このプラグインは「テキスト」エディタを見易くする |
8 | Native Lazyload | 画像を書き出す時に属性値に「loading=’laze’」を追加する
性能改善の為のプラグイン 現在は利用を中止 理由はWordPress 6.0.1のコンテンツ表示でエラーが出るため利用を断念しました。 |
9 | SiteGuard WP Plugin | サイトの状態をメールで連絡するツール
セキュリティ強化 |
10 | the paste | 画像をクリップボード経由で張り付けるプラグイン
ビジュアルエディタを使い易くする |
11 | TinyMCE Preformatted | ビジュアルエディタにソースコードを追加すプラグイン
ビジュアルエディタを使い易くする |
12 | TinyPNG – JPEG, PNG & WebP image compression | 画像(JPEG/PNG)の圧縮ツール
性能改善の為のプラグイン |
13 | WP Multibyte Patch | 日本語対応プラグイン
|
14 | リビジョンコントロール | レビジョン数を少なくする事ができる
|