最近やっているWordPress高速化ネタもこれで一区切りかな、と。
今回はRaspberry Pi 4にUSBアダプター経由でM.2 SSDを装着して使うようにしたネタ📔
USB-HDDに比べて、約5倍のパフォーマンス向上がありました!
hdparm調べ
その他のネタについてはこの記事でまとめていますので、興味ある方は一読を。
変更内容
変更前 ・microSDからRaspbian起動 ・WordPressコンテンツはUSB HDDに配置 ・USB HDDはUSB3.0接続 変更後 ・M.2 SSDからRaspbian起動 ・WordPressコンテンツはM.2 SSDに配置
とまあこんな感じ。
当然M.2 SSDを直接Raspberry Pi 4に装着することはできないので、変換アダプターをかませます。
選んだのはこれ。
知っている人も多いのではないかと。
GeeekPi Raspberry Pi4ケースArgon ONE M.2アルミニウムケース(M.2拡張スロット付き)
組み立てた後の状態がこれです。

このケースにあるM.2スロットはSATA接続のM.2 SSDを付けられるようになっています。
最近のM.2はPCI Expressがメジャーですが、このケースでは接続できないので、注意。
SSDにはこれを選びました。
WESTERN DIGITAL 0718037-872360 WD Red 3D 1TB
選んだ基準は、
・RedとBlueとがあり、RedはNAS向けということでBlueよりTDWが大きい。 ・1TBで約15000円と、それなりの値段で買える。 ・SATA接続
といったところ。
Nextcloudも使うので容量は確保したく、500GBではなく1TBを選びました。
2TBだと約3万円だったので、見送り…
組立
組み立てていきます。
化粧箱は特筆するところなし。

サラサラしたビニール袋に入っています。

マニュアルは英語ですが、イラスト付なので迷うところはなさそう。

中に入っているパーツはこんな感じ。
使い道に迷いそうなものはないです。

SSDを装着したらこんな感じ。

ちなみにこのケース、小型ファンが付いているのですが、吸い出しタイプでした。
CPUクーラーで言うPALみたいな。

ファンコン機能があり、自分で動作を選択できます。
# | Menu | 動作仕様 |
1 | Always on | 常に100% |
2 | Adjust to temperatures (55C, 60C, and 65C) | 55℃まで10%、60℃まで50%、65℃まで100% |
3 | Customize behavior | 温度と回転数(%)を複数組指定可能 |
sudo argonone-config [sudo] password for yasu: -------------------------------------- Argon One Fan Speed Configuration Tool -------------------------------------- WARNING: This will remove existing configuration. Press Y to continue:Y Thank you. Select fan mode: 1. Always on 2. Adjust to temperatures (55C, 60C, and 65C) 3. Customize behavior 4. Cancel NOTE: You can also edit /etc/argononed.conf directly Enter Number (1-4):
自分は2で使っています。
10%だと相当静かで、近くに行かないと聞こえないです。
100%にしたら結構うるさかったので、ファンコン機能は動作している。
OSインストール
microSDから起動したらM.2 SSDは/dev/sdaで認識されていました。
そのため、ddコマンドで難なく書き込めました。
# Download 64bit OS wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspios_lite_arm64/images/raspios_lite_arm64-2021-05-28/2021-05-07-raspios-buster-arm64-lite.zip unzip 2021-05-07-raspios-buster-arm64-lite.zip # Flash to M.2 SSD sudo dd if=2021-05-07-raspios-buster-arm64-lite.img of=/dev/sda
この後、sshという空ファイルとwpa_supplicant.confを/bootに書き込むのが王道だと思いますが、動作しませんでした。64bitだからか?
そこで、初回起動時にHDMI接続してモニターに表示させ、USBキーボードでログインして、
sudo service ssh start sudo systemctl enable ssh
としてSSHを有効化させて再起動、
有線LANで接続して、SSHログインして各種作業を行いました。
また、ログインすると、
Wi-Fi is currently blocked by rfkill. Use raspi-config to set the country before use.
と表示されていて、カントリーコードが未設定なのでWi-Fiが無効になっていることがわかります。
言われている通り、sudo raspi-configして設定します。

Localisation Optionsを選択

WLAN Countryを選択

Japanを選択し、設定を保存して再起動すればWi-Fiが有効になっています。
初期状態ではDHCPなので、/etc/dhcpcd.confを編集して固定IPアドレスを付ける方がいいです。
dhcpcd.confの編集例はこの記事にあります。
データコピー
WordPress/NextcloudデータはUSB-HDDにあるので、M.2 SSDにコピーする必要があります。
最初はUSB-HDDとM.2 SSD、ともにUSB3.0のポートに繋いでcpでコピーしようとしたのですが、
コピー途中でHDDの回転が止まってしまいコピーできず。
ラズパイからUSB-HDDへの電流が足りないっぽい?
仕方なく、USB-HDDを別PC(Lubuntu)に接続し、SFTP経由でラズパイにコピーしました。
80GBくらいをコピーするのに一晩かかりました。
変更前 vs 変更後
ベンチマークで性能を比較。
計測は以下の仕様で行います。
n=5と少ないかもですが、中央値を使うのでそれなりに傾向はつかめるのではないかと。
・ChromeのDeveloper Toolsに付属しているLightHouseで計測する。 パフォーマンスのみにチェックを入れる。 ・Mobile/Desktopそれぞれ5回ずつ計測し、中央値を採用する。 ・Chromeのシークレットタブでページを開いてから計測する。
変更前
←Mobile Desktop→

変更後
←Mobile Desktop→

Mobileは変化なし、Desktopは1ポイントの向上にとどまりました。
HDDからSSDに変えたのにほぼベンチマーク結果が同じなのは納得がいかなかったので、
純粋なディスク読み取り速度を測定してみました。
HDD
sudo hdparm -t /dev/sdb2 /dev/sdb2: Timing buffered disk reads: 162 MB in 3.02 seconds = 53.65 MB/sec
SSD
sudo hdparm -t /dev/sda2 /dev/sda2: Timing buffered disk reads: 782 MB in 3.04 seconds = 256.97 MB/sec
ディスク読み取り速度だけ見ると、約5倍になっています。
ということは、ラズパイ側というよりはクライアント側でのレンダリングの問題なのかも。
→ Lighthouseの計測結果を見ると確かにそれを示唆する結果になっていました。
終わりに
いかがでしたか。
改善の効果がLighthouseの結果に現れなかったのは残念ですが、
hdparmでは5倍の改善が出たので、まあよし!
Comments