わたしの場合はお値段お手ごろなRaspberry pi 2を放置していました.動画再生ができると嬉しいのですが、買ってすぐにトライしたけれど動画再生にはちょっち能力不足という結論でした.
今回は簡単には諦めずに各種条件でRaspberry pi 2をベンチマークしてみました.ですが、ベンチマークが深いハマリへのきっかけになっていたとは、昨夜のわたしは知る由もなかったのです...
何が起きたかというと、UnixBenchというLinux用のベンチマークソフトでRaspberry pi 2のベンチ測定してみました.ところが、ベンチスコアの再現性が全くない.そんなバカな話はないので、何が原因なのかをチェックして徹夜してしまったんです.
【条件】
Raspberry pi 2
SD16GB Class10 UHC-I
2016-09-23-raspbian-jessie Linux4.4.21-v7 (現時点で最新)
UnixBench
【ベンチ表示例】
Dhrystone 2 using register variables 8432016.8 lps (10.0 s, 1 samples)
Double-Precision Whetstone 1821.5 MWIPS (10.0 s, 1 samples)
Execl Throughput 1091.7 lps (29.5 s, 1 samples)
File Copy 1024 bufsize 2000 maxblocks 93955.0 KBps (30.0 s, 1 samples)
File Copy 256 bufsize 500 maxblocks 27009.0 KBps (30.0 s, 1 samples)
File Copy 4096 bufsize 8000 maxblocks 212607.0 KBps (30.0 s, 1 samples)
Pipe Throughput 709039.2 lps (10.0 s, 1 samples)
Pipe-based Context Switching 110734.7 lps (10.0 s, 1 samples)
Process Creation 2480.7 lps (30.0 s, 1 samples)
Shell Scripts (1 concurrent) 2147.6 lpm (60.1 s, 1 samples)
Shell Scripts (8 concurrent) 263.7 lpm (60.3 s, 1 samples)
System Call Overhead 1758653.6 lps (10.0 s, 1 samples)
==========================================================================
System Benchmarks Index Score 371.9
【ベンチスコア】
いろいろやって、ラズパイ2で372というスコアがベスト値でした.
追記: ラズパイ3でベストスコアが416でした.
ラズパイ3だとunixbenchのmakeが動かないかもしれません.対処法はMakefileの中で、
修正前 OPTON += -march=native -mtune=native
修正後 OPTON += -mcpu=cortex-a53 -mfpu=neon-vfpv4
ちなみに、他のPCではこんなスコアです.
Atom D425 @ 1.80GHz DDR3-2GB Linux3.16.0-4-amd64 452
Corei7-4790 @ 3.60GHz DDR3-8GB Cygwin2.0.2 832
これらと比較するとラズパイ2の372というスコアは、そんなに悪くない数値のように思えます.ですが、このUnixBenchはグラフィックベンチを含みません.AtomやCorei7よりもグラフィック処理能力でラズパイ2は随分と劣るように思われます.動画再生が全然出来ませんから.
ラズパイ2ですと、MPEG2再生は解像度が350x240程度に低くてもほとんどフリーズ状態です.解像度の低いMP4ならなんとか動画として再生できました.その程度です.
【ベンチが変だ】
クロック周波数を変えたりしていたら、条件は同じであるにも関わらず、気付いたらスコアが289に低下してしまったのです.ここから徹夜モードへ.
Dhrystone 2 using register variables 8191886.8 lps (10.0 s, 1 samples)
Double-Precision Whetstone 1227.2 MWIPS (9.9 s, 1 samples)
Execl Throughput 791.3 lps (29.8 s, 1 samples)
File Copy 1024 bufsize 2000 maxblocks 77843.0 KBps (30.0 s, 1 samples)
File Copy 256 bufsize 500 maxblocks 22092.0 KBps (30.0 s, 1 samples)
File Copy 4096 bufsize 8000 maxblocks 206288.0 KBps (30.0 s, 1 samples)
Pipe Throughput 486865.0 lps (10.0 s, 1 samples)
Pipe-based Context Switching 69923.0 lps (10.0 s, 1 samples)
Process Creation 1874.5 lps (30.0 s, 1 samples)
Shell Scripts (1 concurrent) 1736.8 lpm (60.1 s, 1 samples)
Shell Scripts (8 concurrent) 228.3 lpm (60.4 s, 1 samples)
System Call Overhead 1190335.0 lps (10.0 s, 1 samples)
==========================================================================
System Benchmarks Index Score 288.9
1) LANケーブルを接続しただけでスコアが 372→326 へ低下しました.eth0の処理で足を引っ張られていたラズパイ2なのでした.
2) さらにUSBメモリを挿しただけでスコアが 326→315 へ低下しました.なにかとUSBメモリに気が散っていたようです.
3) ftpdとtelnetdをインストールしたらスコアが 315→296 へ低下しました.デーモンのせいで気が散ったようです.
4) PCからラズパイ2にtelnet接続し、画面を2つ開いたらスコアが 296→289 へ低下しました.
ベンチが変だ!と腰が抜けた原因は、1~4の累積だったのです.ゆえに実使用条件ではスコア=289ってことですね.づがーん.
まぁここまでだったら徹夜するこたぁなかったんだがな、もっとおかしな事象が出たのよ.
【over clockでスコア激下がり】
raspi-configコマンドでoverclockできます.次の二者択一です.
通常 CPU900MHz core250MHz SDRAM450MHz 高電圧0
OC CPU1000MHz core500MHz SDRAM500MHz 高電圧2
通常→OCに設定変更したらスコアが 372→296 へ激オチしました.
LANケーブル非接続、USBメモリなし、ftpd,telnetdなし の好条件なのにです.
OCしたのにスコアが激下がるってどういうことでしょう? これで徹夜にもつれこみました.
【OCでスコア激下がりの原因と対策】
5) CPU900→1000MHzはスコアにほとんど影響しない (他要因が支配的?)
6) 激下がり原因は、core500MHz、高電圧2 がそれぞれ足を引っ張っている (原因不明)
7) SDRAM500はスコアにほとんど影響しない
対策としては、
・OCせず900MHzのままで使うのが無難
・OCするにしてもraspi-configでOCしない (core500と高電圧2を巻き添えにしてしまうから)
・CPUだけ、あるいはSDRAMだけをOCできればまだマシ (スコアに変化ないけどね)
・どうすればいいか? → /boot/config.txtを編集する
コメントアウトされているところのコメントを外して数値を記入すればよい.reboot必要.
arm_freq=1000 (CPU1000MHz)
#core_freq=500
sdram_freq=500 (SDRAM500MHz)
#over_voltage=2
どうしてこんな症状なのか、詳細は不詳につき不明です.迷える子羊達の参考になれば幸いです.
追記: ストレージをUSBメモリにしたらかえって遅くなりました.たしか200台後半でした.
エイメン
人気ブログランキングへ
蛇足ながら、Rasbian OSのメインストレージをUSBメモリにする方法 をメモしておく.
rasbianの載ったSDカードをwindowsで開くと見えるのが/bootフォルダである.残念ながら、/bootはSDカードに置かざるを得ないので、SDカードを使わなくすることはできない.それでも/boot以外をUSBメモリに置くことはできる.もしかしたらSDカードクラス10よりもUSBメモリの方が高速かもしれない、というのが期待である. →期待外れで遅かった、スコア280ぐらいだった.
用意するもの
・windowsマシン
・Linuxマシン (raspberry piでもOK)
・SDカード (8GB以上?) 以下SD
・SDリーダー
・USBメモリ (8GB以上?) 以下USB
※最近のRasbianは巨大なので4GBでは入らないと思う
・USBはフォーマットして平べったい8GBのFATにしておく
・SDにはRasbianのイメージを書いておく (よくあるやり方で)
※USBにRasbianイメージを書いてスタートすると動かないようだ
SD・USBの認識
・SDもUSBも挿さずにLinuxマシンを起動する
・sudoとかがめんどいのでrootでログインする
・まずはUSBをLinuxマシンに挿す
・fdisk -l と打つと、USBはたぶん/dev/sda1として認識されていることを確認
・つぎにSDをSDリーダーに挿し、それをLinuxマシンのUSBポートに挿す
・fdisk -lと打つと、SDはたぶん/dev/sdb1と/dev/sdb2として認識されていることを確認
OSイメージコピー
dd if=/dev/sdb2 of=/dev/sda1
・sdb2がSD上のOSイメージ、sda1がUSB、ゆえにSD→USBへのコピーの意味
・10分ぐらいかかる.terminalには経過表示等が何も表示されないので不気味な沈黙のまま待つ.USBが点滅すると状況がわかる.
USBの領域整理
umount /dev/sda1
e2fsck -f /dev/sda1 ([Y/n]入力を求められたらEnterを押す)
resize2fs /dev/sda1
e2fsck -f /dev/sda1 もう一度チェックしといたりして
USBのfstabの変更
mount -t ext4 -o defaults /dev/sda1 /mnt
cd /mnt/etc
nano fstab
mmcblk0p2 → sda1 に変更し save&exit
umount /dev/sda1
SDのboot設定の変更
・SDリーダーをLinuxマシンから抜き、windowsマシンに挿す.
・bootフォルダ(FAT)を開く
・cmdline.txtをエディタで開き、mmcblk0p2 → sda1に変更してsaveする
USBから起動
・SDをwindowsマシンから抜き、raspberry piのSDスロットに挿す (このとき別のSDが入っているはずだがもう使わない)
・USBをraspberry piに挿す
・起動
※ここで、SDカードの情報はもはやFATの/bootしか使っていないので、1GBの小さなSDカードに/bootだけをwindowsでコピーして使いたいと思うのが人情だが、トライしてみると起動途中でハングするのでダメっぽい.
0 件のコメント:
コメントを投稿