約 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ポイント改善していることがわかります。
やはり全部の改善を組合せたことで、個々の改善での合計値よりは下がっています。
これはキャッシュを作るため時間がかかったことが原因ではないかと思っています。
ですので、運用していくうちに速くなっていくだろうと楽観。
終わりに
いかがでしたか。
少しの出費は必要ですが、ソフトウェアには手を入れずに改善できますよ!
Comments