USB LAN, SD の速度


USB LAN が妙に速いので測ってみた。ついでに cramfs, ram fs, SD のも見るつもりでいたが、 hdparm -f (buffer flush) が効かないため、何も考えずに測るとバッファ速度を見てるだけになる。 あまりアクセスしなさそうなファイルでテストすべきだが ── あたりまえだが、一回テストするとそのファイルはしばらくテストに使えない。かなり難渋する。 つーか、どうやったらちゃんと測れるんか分からん ...

SL-A300 の USB LAN の接続先のマシンスペックは:

OS Linux 2.4.18 + Rik Patch
CPU Intel PentiumIII 667 665MHz (133x5).
マザーボード Gigabyte 6VA7+ (VIA ApolloPro).
メモリ 256 Mbytes (256MBx1, DIMM 133MHz CL2).
ハードディスク 160 Gbytes (Seagate U6ACE ST380020A + Maxtor 4K080K4).

USB I/F は VIA chip でドライバは usb-uhci.o を使用した。 それと、PC と SL-A300 の USB は直結ではなく、USB HUB がはさまっている。 外して測るべきだろうが HUB がはさまった状態が常用の状態なので、そのまんま。

ttcp

使ったのは例によって ttcp. ソースは例えば IIJ にあるが、 ARM バイナリがどこさがしてもないので自前で make した。使ったバイナリ: これはソースではない。ARM バイナリである。念のため。

通信速度

キャッシュを回避するためもあって、それぞれ数回(それも非連続で)しか測定できなかった。 以下の数字は平均もなんもせず一例ずつそのまんま copy & paste してきただけである。
ストレージ 送信(ザウルスから PC へ) 受信(PC からザウルスへ)
/dev/null 5410.92 Kbits/sec 5825.68 Kbits/sec
cramfs 3735.21 Kbits/sec N/A
ram fs 5100.93 Kbits/sec 3883.99 Kbits/sec
SD (vfat) 3976.70 Kbits/sec 3623.12 Kbits/sec

「ストレージ」というのは SL-A300 側のストレージ。 PC 側は全て /dev/null ないし /dev/zero

足周りは 10Base-T にちょい負ける位ってとこか。けっこ速い。 CPU の能力のわりに健闘しているっつーか、CPU 能力が足りる程度の通信速度っつーか。

純然たる通信では受信のほうが速いのにストレージ相手の転送だと送信のほうが速いというのは、 つまりバッファキャッシュが効いてしまっているのだろう。受信のほうはキャッシュの効きが悪いだろーし。

cramfs からの転送より SD からの転送のほうが速い。cramfs の遅さ(重さ)が示唆される。
もちろん USB LAN 上の転送という重負荷が掛かってる条件下での速度差である。 単なる空読みだと cramfs のほうが速いんだろーが、そういうのは状況的に興味ない。

tar -c

cramfs から tar -c で吸い上げてみた。
# cd /usr/QtPalmtop.rom/
# /home/root/time tar -c . > /dev/null
1.08user 9.12system 0:25.30elapsed 40%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (169major+3108minor)pagefaults 0swaps
# cd ..
# du -s QtPalmtop.rom 
17743   QtPalmtop.rom
17MB のエリアに対し tar -c で 10 秒、1.7MB/s くらい。読み出し速度は遅めの CF という感じ。

このテの遅さが圧縮ファイルの伸張に時間食ってることによるものなのか、 そもそも FROM の読み出しの bandwidth が狭いのか ... というのが問題になるんだろーが、 mke2fs /dev/mtdblock0 するなりしないと分からんので後回し。 なんかもー十二分に遅いし。


[日記へ] [目次へ]