前回のあらすじ
環境準備
[comicsong@comicsong ~]$ umount /mnt/USB/
umount: /mnt/USB: umount failed: 許可されていない操作です
[comicsong@comicsong ~]$ sudo umount /mnt/USB/
[comicsong@comicsong ~]$ sudo parted /dev/sdc
GNU Parted 3.1
/dev/sdc を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p
モデル: SanDisk Ultra (scsi)
ディスク /dev/sdc: 124GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 124GB 124GB ext4 OSD01
(parted) rm 1
(parted)
(parted) p
モデル: SanDisk Ultra (scsi)
ディスク /dev/sdc: 124GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
(parted) mkpart OSD01 0% 100%
(parted) p
モデル: SanDisk Ultra (scsi)
ディスク /dev/sdc: 124GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 124GB 124GB ext4 OSD01
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
[comicsong@comicsong ~]$ sudo mkfs.ext4 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
7585792 inodes, 30326272 blocks
1516313 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2178940928
926 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[comicsong@comicsong ~]$ mount -t ext4 -o noatime /dev/sdc1 /mnt/USB
mount: only root can use "--options" option
[comicsong@comicsong ~]$ sudo mount -t ext4 -o noatime /dev/sdc1 /mnt/USB
[comicsong@comicsong ~]$ cd /mnt/USB/
[comicsong@comicsong USB]$ sudo mkdir fio
[comicsong@comicsong USB]$ cd fio/
[comicsong@comicsong fio]$ sudo vim fio.sh
[comicsong@comicsong fio]$ sudo chmod +x fio.sh
[comicsong@comicsong fio]$ sudo ./fio.sh
fio.sh
- 基本的には冒頭に貼った昨日のテストと同一
- ブレが大きかったため実行時間を60秒から180秒に延長している
#!/bin/bash
fio --size=30m --numjobs=4 --iodepth=8 --time_based --runtime=180 --overwrite=1 --ioengine=libaio --bs=4k --group_reporting --direct=1 --name=test --rw=read | grep iops=
fio --size=30m --numjobs=4 --iodepth=8 --time_based --runtime=180 --overwrite=1 --ioengine=libaio --bs=4k --group_reporting --direct=1 --name=test --rw=write | grep iops=
fio --size=30m --numjobs=4 --iodepth=8 --time_based --runtime=180 --overwrite=1 --ioengine=libaio --bs=4k --group_reporting --direct=1 --name=test --rw=randread | grep iops=
fio --size=30m --numjobs=4 --iodepth=8 --time_based --runtime=180 --overwrite=1 --ioengine=libaio --bs=4k --group_reporting --direct=1 --name=test --rw=randwrite | grep iops=
結果
- 上からSeqRead,SeqWrite,RandRead,RandWriteの順
read : io=4435.7MB, bw=25233KB/s, iops=6308, runt=180004msec
write: io=750344KB, bw=4166.4KB/s, iops=1041, runt=180097msec
read : io=538688KB, bw=2991.2KB/s, iops=747, runt=180043msec
write: io=231164KB, bw=1212.4KB/s, iops=303, runt=190682msec
read : io=882528KB, bw=14707KB/s, iops=3676, runt= 60009msec
write: io=627904KB, bw=10463KB/s, iops=2615, runt= 60010msec
read : io=158516KB, bw=2639.8KB/s, iops=659, runt= 60050msec
write: io=109504KB, bw=1823.2KB/s, iops=455, runt= 60064msec
繰り返し試したところSeqWriteのiopsは3000程度まで出ることがあったが全体の最高値としては上記のSeqReadの6308だった
- Raspiのメモリ量を考慮してベンチマークファイルのサイズ小さすぎたのが悪かったようで
- その後ファイルサイズを500MB,1job/32QD で試したところ公称値に近い値が出た
read : io=8215.3MB, bw=93470KB/s, iops=23367, runt= 90001msec
- しかしランダム系テスト項目については大きく変わらず
まとめ
- Read系はスコア向上したがWrite系は下落。調子いいSeqReadでも25MB/sと公称値の1/4
- 相変わらずRand系が弱く安定しない
Win系での利用が前提なのかしらんし、公式ページの下に注釈あるけれど up to 100MB/s
は盛りすぎでは?
- SeqReadスペシャルなIO傾向なので一度入れたらあとは読むだけな写真などには適していそう