このホームページは TS-220 に設定した wordpress で構成しているが、表示速度が遅く、一つの記事読み込みにおよそ10秒程度掛かる。GTmetrix で計測すると以下のようになった。
これは、スマホからは感覚的にギリギリ見れる程度だ。ただし、アクセスはほぼ1つ(自分)の場合で、限られた人以外にアクセスがないため問題がない。
パフォーマンススコアが悪いのはスペック(回線を含む)に依存している。
これまでの経験から推測するに、スペックではないかと思い、TS-220を使い始めて1年半経ち、少し早いがスペックの高いTS-451の購入を検討している。しかし、高い。WordPressを除けば、買う必要性はそこまでない。
※HTMLベタ打ちのホームページはサクサク動作する。
「本当に使えない」のだろうか?各動作の負荷を確認し、自分が利用可能と判断できるレベルを見極めればまだいけるのではないか検討したい。
以下に技術的な裏づけは一切ないため、「体感」を元に検証を行ってみる。
TS-220のスペック
CPU・・・Marvell 1.6GHz メモリ 512MB
まず、CPUだが、シングルコアではバックグランドの処理からもろに影響を喰らうため、TS-220が以下の処理中はWordPressの編集はほぼ固まる。大雑把に言えば、何かをやれば他はまともに動くことは期待できないスペックだ。
- ウイルスチェック時
- Qmusic,Qphoto,Qnote等のアプリ処理時
- メディアエンコード時
- DLNAメディアサーバ利用時
- アプリの起動や更新、設定変更
- メディアライブラリ周りの設定変更(フォルダ、追加、削除等)
ただし、これらの動作を「同時に」行わなければ問題ない。個人サイトを複数人で使うことはほぼないので編集のタイミングを自分で調整すればよい。
編集の検証
こんなサイトに複数人アクセスするとは考えられず、自分の日記用でしかないので、いいのだが、編集がきつい。
編集をするにしても、画像を取り込むにしても時間が掛かる。
- 100KB で約30秒
- 500KB で1分~2分
- 1MB以上 3分~5分
これは、サーバ側で大・中・サムネイルの画像を作成しているから仕方がないのだが、正直やってられない。
モバイルからではWPやHubPadを使用すればアップロード時にまとめて処理してくれるのでよいが、PC上からの更新がメインなので、編集しづらい。
画像編集時の方法の変更
- アップロード時の画像生成を早くするには画像を軽くする。
写真などは動画同様に時間が掛かるものとして諦めるとし、説明用画像は100KB以下に抑えるようにする。 - サムネイル生成の負荷を減らす。
私の場合は高解像度を乗せたい場合は難があるので中の生成をストップした。気持ち、2割り程度生成が早くなったようだ。
メディア挿入時の画面表示
メディアの挿入で、「すべてのメディア」を表示するだけで、以下の通り、危うい状態になる。
これは、デフォルト表示を「この投稿へのアップロード」へ変更すると以下のように負荷が減った。
表示方法の変更
デフォルト表示にするにはググれば判ることだが、以下のコードをテーマフォルダ内の functions.php へ追加した。
function media_uploader_default_view() { echo '<script type="text/javascript">jQuery(function( $ ){ '; echo 'wp.media.view.Modal.prototype.on( \'ready\', function( ){ $( \'select.attachment-filters\' ).find( \'[value="uploaded"]\').attr( \'selected\', true ).parent().trigger(\'change\'); });'; echo '});</script>'."\n"; } add_action( 'admin_footer-post-new.php', 'media_uploader_default_view' ); add_action( 'admin_footer-post.php', 'media_uploader_default_view' );
編集時のリビジョンと自動保存の”ほぼ”オフ
「接続が切れました自動保存を実行します。」等の機能があると、これまた、TS-220には負担が大きいようで、記事をいちから読み込んでいるようで、かつリビジョンも確認するため、二倍 20秒程度 固まってしまい、編集を受付ない。
ほか、編集時の設定変更以下もググれば出てくるが、リビジョンの読み込みと自動保存をほぼしない状態にして、編集時の無用な読み込みを減らした。
wp-config.php の以下の記述
/** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/');
の上側へ追加する。
/** リビジョン回数変更 */ define('WP_POST_REVISIONS', 1);
/** 自動保存を1時間毎 */ define(‘AUTOSAVE_INTERVAL’,3600);
これで、「接続が切れました」自動保存を実行します。などのメッセージは出なくなる。
表示の検証
表示の検証においては回線とサーバスペックが大きい。
当然画像サイズや数を減らすことが大事だ。ただし、私は画像を多用したいので無視する。どうしようもない。
サムネイルでの大きさならあまり問題はないと思う。
プラグインの整理
User Access Manager ほかビデオストリーム、サムネイル等を削除した。
UAM以外はたいして変わらなかったが、まあいいや。
テーマの変更
テーマを変更してみたら、あっさりパフォーマンスが上がった。CSSその他ががNASの性能に影響がでかいので当然と言えば当然ですが、、、
これは、テーマが高機能かどうかという点もあるが、最新のものほど最適化されていると考えてよいと思う。特にIE8以前に非対応のものはHTML5ベースのものが多く、コードの記述が少ないためであり、モバイルへのレスポンシブもスムーズになると思われる。
WP SuperCache での高速化
上記プラグインを実行した。※Permalinkを「数字ベース」で再構成したら、ページ読み込み時間がかなり短縮された。
これでなんとか使えないことはない状態まで持っていくことができた。と思う。
終わり
追記
その後、速度が劇的に改善した。
ルータの交換
プラグインの整理と更新
wordpressの更新
テーマの更新
QNAPのQTSの更新
を行った現在、以下のスコアになった。
各種更新によるなんらかの最適化とプラグインのキャッシュが効いていると思う。
WP Fastest Cache の使用
2016-02-26追記
キャッシュ生成のプラグインを変更。こちらのほうが使いやすい。
スコアは同等でした。
以上