raspberry pi 4 model B(4GB)の観察
Ver.1.001 2022.12.10
更新履歴
2022.12.3 Ver.1.000 新規作成
raspberry pi 4 model Bに、SATAーUSB変換をつけ、SSDをつなぎました。USB3メモリは、早いのですが、大きなファイルだと発熱をして、保護回路が働き、遅くなるらしい。しかも、 raspberry pi 4 model Bは、USB3.0なので、USB3.2メモリのような、10GHzの速度は無理で、USB3.0の5GHzしかできない。
SSDは、USB3メモリのように、発熱で遅くなることはない。放熱が十分考えられている。しかも、SATAーUSB変換は、電源付きなので、電源付きの USB3HUBが要らない。
これまで、電源電圧低下の警告が出ていたが、SSDにしてからは、全く問題がない。
なお、SSDは、KIOXIA480GB、SATA-USB変換は、Alxum USB3.0 to SATA6Gである。
マイクロSDHCは100MB/secで、SSDは、読み込み555MB/sec書き込み540MB /secだから、かなり違うでしょう?
素数を1億個求めさせると、2分8秒でした。Core2duoのマシンは、1分8秒でした。i5-2500のマシンで26秒でした。シングルタスクなので、 コアの数は関係ありません。
さて、SSDをつないだのだから、swap領域を作れば、メモリ4GBでも、swap領域サイズだけメモリが拡張されるのではないか。もちろん、スピードは 落ちるだろうが、SSDだから、そこそこなんとかならないだろうか。CPUの速度が遅いので、swapでメモリ拡張できないかな・・・・・
「素数を1億個求めさせる」プログラムは、http://y-daisan.private.coocan.jp/html/s91114.htmlの sosuu-3.max.cです。
32bit整数で求められる最大数に近い素数で、約1億個あります。一応オリジナルと思っています。まあ、1億個が26秒で求まるからすごいでしょう。な お、4GBのwindows10では、メモリが足りません。Linuxなら、4GBで動きます。
コンパイルは、
$gcc -Wall -O2 -o sosuu-3.max sosuu-3.max.c
です。raspberry piでは、メモリオーバーとの警告が出ますが、
$./sosuu-3.max
で、ちゃんと動きます。
Webでみていると、raspberry pi 4にM.2 SSDをUSB3でつないでいるようです。そこで、USB3.0を見てみました。
マイクロSDのとき(USB3は未使用)
$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p,
5000M USB3ポート5Gですね。
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p,
480M USB2ポート480Mですね。
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p,
480M USB2ポートにキーボードとマウスがつながっています。
|__ Port 4: Dev 3, If 0,
Class=Human Interface Device, Driver=usbhid, 1.5M キーボード?
|__ Port 4: Dev 3, If 1,
Class=Human Interface Device, Driver=usbhid, 1.5M マウス?
これから見ると、USB3ポートは、5Gですね。
SATA-USB変換使用時 (HDDの場合)
$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p,
5000M USB3ポート
|__ Port 2: Dev 2, If 0, Class=Mass Storage,
Driver=usb-storage, 5000M USB3ポートにSATA-USB変換
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p,
480M
|__ Port 4: Dev 4, If 0,
Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 4, If 1,
Class=Human Interface Device, Driver=usbhid, 1.5M
SATA-USB変換使用時 (SSDの場合)
$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p,
5000M USB3ポート
|__ Port 2: Dev 2, If 0, Class=Mass Storage,
Driver=usb-storage, 5000M USB3ポートにSATA-USB変換
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p,
480M
|__ Port 4: Dev 3, If 0,
Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 3, If 1,
Class=Human Interface Device, Driver=usbhid, 1.5M
これらから、USB3ポートは、5Gのようです。
さて、fileのI/Oスピードを測ってみました。sysbenchを使いました。
16384kbytesのファイルを128本作り、トータル2048Mbytesで、
ファイルをシーケ
ンシャルにアクセスするか、ランダムにアクセスするかで
測りました。
モー ド | マイクロSD | HDD | SSD |
シーケンシャルR/W | 14.279Mb/sec | 70.634Mb/sec | 136.44Mb/sec |
ランダンムR/W | 18.664Mb/sec | 4.3976Mb/sec | 37.788Mb/sec |
SSDは、マイクロSDより、圧倒的に速いですね。
シーケンシャルアクセスに限定すれば、HDDはマイクロSDの5倍、SSDは約9倍くらいですね。
マイクロSD:マイクロSDHC 32GB
HDD:HDT7210032SLA360 320GB
SSD:前出
つづく