WordPressのチューニング(ページキャッシュ)

WordPressの表示を早くしたい。一方でPHPなどには極力手を入れたくない(CGIモードである)。

  • W3 Total Cache
  • WP Super Cache

というプラグインがメジャーどころらしいので、両方試してみた。

導入前

導入前の性能は、ab(100アクセス、10並列)で試したところ、7.38回/秒であった。超遅くはないけど、やっぱり早くはない。

W3 Total Cache導入

W3 Total Cacheを導入して、ページキャッシュのみを有効にしてみる(たぶん)。このプラグインは、かなり多機能でほかにも様々な最適化のオプションがあるので、いろいろ設定を変える余地はたくさんあると思う。

ページキャッシュを有効にして上記と同じくabで測ってみたところ、54.3回/秒であった。

何も変えてないのに7倍速くなった。すごいな、という印象。この手のものを試してない人は、是非ともやってみた方が良いのではないかな。

WP Super Cache導入

こちらは、W3 Total Cacheに比べると、ページキャッシュに特化したシンプルなプラグインのようだ。オプションは少なめで、導入の簡単さはこちらが上ではないだろうか。

ページキャッシュを有効にして、同じくabで測ってみた結果、46.5回/秒であった。

こちらのプラグインでも、6倍の高速化ができた。

なお、2つのプラグインについて、本当に同じ条件で比較ができているか自信が持てないので、どちらが早いかについてはコメントを控えたい。そもそもVPSであるので、サーバ全体の負荷のかかり方で性能は変わるものだ。

どちらのプラグインも導入は簡単であり、ちょっと設定するだけでずいぶんと高速化が図れる。この2つのプラグインの導入数の多さと、評価の高さが理解できる。

なお、ページのキャッシュがたまっていくと思うので、それを整理するという作業が必要になるかもしれないが、その点については調査していない。勝手にやってくれるのならありがたいのだけど、定期的に消す仕組みがいるかもしれない。

WordPressのチューニング(MySQL編)

WordPressの表示を早くしたい。まずはMySQLのチューニングを行ってみる。

情報収集して一つずつ試しては性能測定、とやっていたけど、効果があるのは「クエリキャッシュ」のパラメータだけだった。

Ubuntu16.04では /etc/mysql/mysql.conf.d/mysqld.cnf を修正すればよい。

修正前

query_cache_limit = 1M
query_cache_size = 16M

修正後

query_cache_limit = 4M
query_cache_size = 64M

これで、ほんのわずかに性能が良くなったので、これだけを適用しておいた。基本的に、CGIモードで起動しているPHPの処理時間が長くて、MySQLに費やしている時間はそれほどでもないと思える。

Lenovo V530s Small 購入

Lenovo V530s Smallを買いました。

机の上にはLGの4kディスプレイがあり、キーボードとマウスもつなげてノートPCを操作してましたが、そのノートPCがコイル鳴きするので、うるささに耐えかねて、新調しようと。デスクトップを床おきすれば、机の上のスペースが空くかな、という狙いもあり、コンパクトデスクトップを買うことにしました。

調達にあたっては、ともかく安さを重要視して選びました。Core i3以上のCPUを積んでいたらそれで良くて、あとは好き勝手に増設するのでなんでも良しと。注文したスペックは、 Core i3-8100/4GB/HDD 500GB といったところ。Optaneは外しました(どうせSSDにするし)、あとWiFi+Bluetoothは付けました。たしかDellとlenovoと一騎打ちになって、lenovoが安かったので決めました。

メモリはさっさと増設。4GBだったのを、16GB(8×2)に増設しました。どうせ定格での駆動なので、これも安さでチョイスしたもの。

SSDは、とりあえず手元にある、M.2 SATAのSSD(intel製・250GB)を使おうと思いましたが、なぜか認識しません。パーツの不良なのか、UEFIの設定が足りていないのか、などは真面目に調査していません。

次に試したCrucial P1 1000GB(CT1000P1SSD8JP)はばっちり認識して利用できました。特に設定を変えるところはなかったです。Crucialのページで「互換性あり」と表示されていたので、それを信じて購入した感じです。他のNVMe SSDも動くかもしれませんが、これだけしか試していません。ともかくこのやつはとても安かったので、気に入りました。

HDDはM.2 SSDと共存できたので、これまでUSBケースに入れて使っていたSeagateの8TB HDDをのっけることにしました。

16GB、SSD 1TB + 8TB HDDはなかなかご機嫌な感じがします。ネットの閲覧、お仕事のパワポの編集などはこちらでやるようになりました。雑誌や参考書を読んだりするのにも活躍してます。やっぱり4kパネルはありがたい。解像度は力ですね。

QLCのNVMe SSDベンチマーク

最近入手した二つのNVMe SSDは両方ともQLCのものです。それぞれベンチをとってみたので乗せることにします。

intel 660p 2TB (SSDPEKNW020T8X1)

メインのノートPCで利用。Samsungの970 EVO Plus 1TBで行こうと思っていたのだけども、3週間ほどで認識しなくなったので、こちらを代替品として入手。SSDが使えなくなるって珍しいですよね。 Samsungの方が、インストールとかzipの展開とかは速かったかなあ。でも普段の操作で腹が立つことはありません。当たり前か。

Crucial P1 1TB (CT1000P1SSD8JP)

デスクトップで利用。これを選んだ理由は安さだけど、Windowsの起動とかはHDDと比べると断然早いですね。当たり前か。

Ubuntu16.04のqmailを使ってセカンダリのメールサーバを設定する

このブログを動かしているサーバとは別に、バックアップ機を用意してるのですが、qmailを入れちゃいましたし、 せっかくなのでセカンダリのメールサーバにする手順を調べて、やってみました。

まずは、セカンダリの /etc/qmail/smtproutes にドメインと本来配送すべきサーバを書いておきます。

example.com:server1.example.com

みたいな感じで、1行ずつ書きます。簡単ですね。優先したいMXが2つある場合はどうするんだろう。分からないです。メールはキューにため込まないといけません。locals virtualdomains に書いてあってはいけません。配送されてしまいます。念のため確認しましょう。

メールの受信はしたいですので、/etc/qmail/rcpthosts には書いておきます。これはドメインを1行ずつ足せばよいです。簡単ですね(省略)。

メールの保存期間は、デフォルトで7日間となっています。これを変更したければ queuelifetime をいじるようですが、やっていません。大変なトラブルになったら、これを長くしておけば猶予がもらえるわけです。

設定を反映すべく、qmailを再起動します。

sudo qmailctl restart

あとは適切にMXレコードを書くだけです。ここは本当に使ってるネームサーバ次第なので、これだけしか書きません。基本的には「数値が小さい方が優先される」ので、メインが10なら、予備は20とか、そのように指定しておきましょう。

これだけでした。自分のドメインでも試してみましたが、思ったように動きました。簡単です。セカンダリのキューにメールがやってきたかどうかは qmail-qstat コマンドで分かると思います。

WSL(Windows10)のUbuntu環境でlame-3.100をビルドする

昔、さんざん標準とずれたOSでビルドをしていたころと比べると、Ubuntuで何かをビルドする、なんていうのは余裕に感じます。

ただ、今は欲しいものはaptとか、パッケージで入ってしまうことがほとんど。ビルドなんてやったことがない、という人も多いと思うので、そういう人のとっかかりになれば、と昔を思い出しながら書くことにしました。

ここでやってることは「割と普通」のお作法だと思うので、これで味をしめたら、何でも好きなものをビルドして使えますよ。

とりあえず、ビルドするにはソースコードが必要です。最新のlame(といってもそう新しくはなさそう)のソースコードは、SourceForgeにあります。もちろんWSL環境のUbuntuも用意しておいてくださいね。ここではその方法には触れません。僕は最新ではない16.04を使っていますが、まあ18.04でも同じでしょう、たぶん。

今のところlameは3.100というものが最新のようです。ダウンロードします。といってもその操作はWindowsのChromeでやってしまいます。lame-3.100.tar.gz(ソースコード)は、僕の設定だと「ダウンロード」に保存されます。保存先がデスクトップの人などは、各自読み替えてください。wgetでダウンロードできるという人は、もちろんそれでもかまいません。

さて、ダウンロードしたフォルダに動いてそこでコンパイルしてもいいんですが、ちょっと気持ち悪いので、Ubuntuのホームにコピーして作業します(ユーザ名は適宜読み替えをお願いします)。まずはソースコードの展開、それからconfigureをします。/usr/local/以下に入れるようにしましょうか。

$ cp /mnt/c/Users/kawaz/Downloads/lame-3.100.tar.gz ~
$ tar xvzf lame-3.100.tar.gz
$ cd lame-3.100
$ ./configure --prefix=/usr/local

何にもしていないWSLだと、エラーが出ます。makeもgccも、必要なツールが何もないんです。というわけで、それらはaptで入れちゃう。

$ sudo apt update
$ sudo apt install make gcc

うまく入ったら、もう一度先ほどのconfigureをします。僕の環境では、これでうまくいったように思えますね。そしたらいよいよコンパイル。makeします。僕のノートPCは2C4Tなので、並列度は4を指定。ただlameくらいの規模だと、指定しなくてもそんなに変わらないと思います。

$ make -j 4
$ sudo make install
$ ls /usr/local/bin

これで、/usr/local/binにめでたくlameが入ったのではないでしょうか。以降、lameコマンドを普通に利用できます。パチパチ。

こんな感じで、ソースをとってきて、tarで展開して、configureして、makeして、make installする、というのが一番多いのではないでしょうか。もちろん、ものによるので、下調べした方がいいですが、大まかにはこういう感じでやることが多いですね。これで最新のlameが使えますね。よしよしと。エディタとか好みのバージョンをビルドし始めると、キリがないですね。

電話機の買い替え(VE-GD25DL)

この電話機はいつ買ったものだろうか。記憶にない。少なくとも10年は使っていますね。留守電のついた本体と、コードレスの子機が1つあるという、ふつうの電話なのですが、最近子機の画面が全く映らなくなったし、経年劣化もあるだろうし、子供も使うようになるだろうし、同じメーカーの似たようなものを買いました。

まずお別れする古い電話機。VE-GP10DLというやつ。発売日が2006年だから、やはり相応に古いものでしょう。子機にしか画面がないのに、それがうつらないのです。子機の電池は一回替えた気がしますね。

次に新しい親機と子機。VE-GD25DLというのを買いました。型落ち、と言っても2017年の製品だし、新しいモデルVE-GD26DL(2018年製)と、価格以外の違いが正直分からなかったです。お値段の話をついでにしておくと、Amazonで5000円しなかったです。安くないですかね。元が取れるんでしょうか。

良さそうな点は、以下のようなところでしょうか。まだあまり使っていないので、見た目ばっかりですが。

  • 全体にコンパクトになった
  • 本体のACアダプタが小さくなった
  • 本体に画面が付いた
  • 子機の充電器にACアダプタがない(!)
  • 子機は無接点充電になった
  • 親機も子機も画面がうつる

年長の上の子は、「これなら簡単に使える」と言ってました。これまでは、押した番号がわからなかったので、格段に良くなりました。古い子機は、電池があるのかないのかも分からないレベルでしたし。

遠い将来を考えると、子機が2つあるモデルにしたかったけれども、なぜだか驚きの価格差があったので、そこは妥協しました。家は広くないので。 これから、永らくよろしくね。

Samsung 860QVO

いよいよSamsungが4bitの記録をするNANDを積んだ、860QVOシリーズを出してきます。2月。既報を見る限り、安い代わりに早くはない。ただし、SLCのキャッシュで頑張るので、実用上はそれほど遅くは感じない、というところでしょう。

Amazonからもさっそく出てきました。注目すべきは、やはり2TBという大容量のSATA SSDがお求めやすくなったところではないでしょうか。

個人的にはですね、新しい860QVOが売れることで、古くなった860EVO(MLC)の値段が下がれば、それを買いたいです。いまCrucialの1TBのSSDを使っていますが、あんまり余裕がない。このペースだと1年は持たないです。

こちらがすでに売られている860EVOの2TB。いまはまだ4万円を超えています。

こちらは2月から予約販売の860QVOの2TB。すでに35000円とかです。今後に期待できそうですね。

冷蔵庫の共振対策

冷蔵庫がうるさくなった。

コンプレッサー自体がうるさくなってしまったのなら、ある程度諦めますが、あちこち触ってみると、底面の樹脂カバーが共振している様子です。そこを触るだけで、静かになる。

たぶん、横向きにしてネジを締めなおすとか、パーツやネジを取り寄せて交換すればよさそうだけど、現実的ではない。300Lを超える冷蔵庫は、僕より重いですし。

そこで物は試し、制震シートを貼ってみることにしました。

貼ってみたものはこれです。日本特殊塗料の「防音一番オトナシート」というもの。

貼ったらこんな感じ。

側面から底面にかけて貼り付けました。と一言で書けばそれだけですが、けっこう大変な作業でした。少し持ち上げては、段ボールとかでくっつくかなあ、と押し当てたりを何度も繰り返す。見たところ、床から浮かずにくっついたのでよしとしました。

結果はというと、とっても良いです。バッチリ静かになりました。これはすごい。こういう、一部が共振している現象については、むちゃくちゃ効果があります。エアコンの室外機とかにも効きそう。

このシートは、5枚入りなので4枚余ってるんですよね。誰か要りますか。でも送料が高くなるのですね。きっと。