【爆速】WordPress/mysqlをmicroSDからUSB HDDに移して速度確認してみた【快適】

Raspberry Pi

約 6 分で読めます。


このツイートで書いたとおり、Webサービスの高速化はいろいろやりようがあるということで。



この記事では、WordPress/mysqlの高速化をしてみました。

具体的には、
これまではWordPressとmysqlをmicroSDに置いて動かしていたのですが、
USB-HDDの方が速度・耐久性ともにmicroSDより高いようなので、移してみた、と。
変更前と変更後とでベンチマークした結果も載せていますので、参考になるかと。

全体構成で言うと、ここです。
 赤枠で囲った部分。



その他の改善についてはこちらの記事に整理しています。

docker-compose.yml変更内容

WordPress/mysql、それぞれのコンテンツ置き場をUSB-HDDに移すだけです。
 関係ない部分は省略。

 services:
   nginx:
    volumes:
-    - ./html:/var/www/html
+    - /mnt/usb-hdd/wordpress-container/html:/var/www/html

   wordpress:
    volumes:
-    - ./html:/var/www/html
+    - /mnt/usb-hdd/wordpress-container/html:/var/www/html

   db:
    volumes:
-    - ./mysql:/var/lib/mysql
+    - /mnt/usb-hdd/wordpress-container/mysql:/var/lib/mysql



書き換えした後にdocker-compose down/up -dすればOKです。

コンテンツサイズがさほど多くないなら、
html/mysql、両ディレクトリをRAMに移してやるともっと高速化するかも。
 あるいはSSD。
今度やってみよう。



変更前 vs 変更後

ベンチマークで性能を比較。
環境はRaspberry Pi 4で動作中のWordPressを使います。
 ↓の記事で紹介



↑の環境に今まで行ってきたこれら改善を全部入れておきます。
 ・Nginx
 ・PHP
 ・WordPress
 ・mysql



計測は以下の仕様で行います。
n=5と少ないかもですが、中央値を使うのでそれなりに傾向はつかめるのではないかと。

・ChromeのDeveloper Toolsに付属しているLightHouseで計測する。
 パフォーマンスのみにチェックを入れる。
・Mobile/Desktopそれぞれ5回ずつ計測し、中央値を採用する。
・Chromeのシークレットタブでページを開いてから計測する。



USB-HDDはこれを使いました。
なんの変哲もないサムスンの1TB HDD。
 製造元はSeagate?

sudo hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
        Model Number:       ST1000LM024 HN-M101MBB 
(略)


変更前
←Mobile Desktop→



変更後
←Mobile Desktop→



Mobileは8ポイント、Desktopは10ポイント上がりました!

ただ、Nginxなど個別の改善でも8ポイントとか上がっていたので、予想としては
 もっと上がるのでは?
と期待外れだったのは否めません。



ちなみにUSB-HDDに移す前での試行結果はこちら。
←Mobile Desktop→

USB-HDDに移したことでMobile/Desktopともに3ポイント改善していることがわかります。
やはり全部の改善を組合せたことで、個々の改善での合計値よりは下がっています。

これはキャッシュを作るため時間がかかったことが原因ではないかと思っています。

ですので、運用していくうちに速くなっていくだろうと楽観。

終わりに

いかがでしたか。

少しの出費は必要ですが、ソフトウェアには手を入れずに改善できますよ!

この記事を書いた人

組込ソフト歴15年の外資系エンジニア。
前職で組込Linuxを使った商品設計/品質確保の業務に従事。
Raspberry Piが好き。
株式投資で年50万円を稼ぐ。
妻は香港人(国際結婚)。

Please follow me
Raspberry Piブログ
Please follow me
世界Linux新聞

Comments

タイトルとURLをコピーしました