【爆速】Raspberry Pi 4をM.2 SSDから起動させてみた【快適】

Raspberry Pi



最近やっている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動作仕様
1Always on常に100%
2Adjust to temperatures (55C, 60C, and 65C)55℃まで10%、60℃まで50%、65℃まで100%
3Customize 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

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