読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(writeboost report) 今後の計画

昨日, 一日全力で作業してたぶん3ヶ月ぶりくらいの進捗報告を出すことが出来た.

http://www.redhat.com/archives/dm-devel/2014-May/msg00052.html

ソフトウェアというのは, 当然動くだろうと思っていても実際にやってみるときちんと動かないことが多い. ライトブーストも, dmtsに入れたテストが全部走り切らなくて少し苦労した. テストも全部走るまでに2-3Hかかり, 終わる頃には部屋が暑い気がした. これだけ様々なテストが自動で走りきることを実証出来たことが誇らしい.

測定結果は, 投稿したメールにあるように, 非常に良いものだ.

これからは, このメールにレスがあれば対処していく. なかなか刺激的な内容を投稿したつもりだ. きっとレスがつくだろう. 性能面で文句をつけることは難しいのではないか. I/Oスケジューラの効果など, DMだけでなくI/Oシステム全体に影響がある話題なので, 最高のケースではファイルからI/Oスケジューラまで全部を巻き込むことになる.

測定のお願い

日本人のみなさんには是非, 測定をお願いしたい. 私はSSD1枚, HDD1枚の貧弱な環境でテストをしている. 当然, 現実的にはこの組み合わせにライトブーストを適用することはまずあり得ない. 現実的には, もっと多くのHDDを使ってbacking deviceを作るべきだ. 出来れば, 30個とかで実験してみたい. しかし残念ながら私はどうやってもそのような環境にリーチ出来ない. 従って, みなさんが測定をして, 結果をLKMLとdm-develに投稿すべきだ. 英語が書けないならば私が代筆する.

測定をするためにやることは以下,

実際に私が流しているスクリプト(runtest.sh)は以下. これをsh runtest.sh >perf.log 2>&1と実行している.

# ThinpMixin needs this
modprobe dm-bufio

# dm-writeboost needs these
modprobe libcrc32c
# insmod /root/dm-writeboost/src/dm-writeboost.ko

# build & install the gem. `rake install` doesn't work somehow.
rake build
gem install --no-ri --no-rdoc pkg/device_mapper_test_suite-*.gem

dmtest list --suite writeboost

echo git extract
dmtest run --suite writeboost -t /Backing/ -n git_extract_cache_quick
dmtest run --suite writeboost -t /Type0/ -n git_extract_cache_quick
dmtest run --suite writeboost -t /Type1/ -n git_extract_cache_quick
echo writeback sorting
dmtest run --suite writeboost -t /Backing/ -n writeback_sorting_effect
dmtest run --suite writeboost -t /Type0/ -n writeback_sorting_effect
dmtest run --suite writeboost -t /Type1/ -n writeback_sorting_effect
echo randread overhead \(HDD backed\)
dmtest run --suite writeboost -t /Backing/ -n fio_read_overhead
dmtest run --suite writeboost -t /Type0/ -n fio_read_overhead
dmtest run --suite writeboost -t /Type1/ -n fio_read_overhead
echo randread overhead \(SSD backed\)
dmtest run --suite writeboost --profile ssd -t /Backing/ -n fio_read_overhead
dmtest run --suite writeboost --profile ssd -t /Type0/ -n fio_read_overhead
dmtest run --suite writeboost --profile ssd -t /Type1/ -n fio_read_overhead
echo dbench
dmtest run --suite writeboost -t /Backing/ -n do_dbench
dmtest run --suite writeboost -t /Type0/ -n do_dbench
dmtest run --suite writeboost -t /Type1/ -n do_dbench
echo stress
dmtest run --suite writeboost -t /Backing/ -n do_stress
dmtest run --suite writeboost -t /Type0/ -n do_stress
dmtest run --suite writeboost -t /Type1/ -n do_stress

ちなみに私の/root/.dmtest/configはこんな感じ

profile :mix do
  metadata_dev '/dev/sdd2'
  data_dev '/dev/sdc2'
end

# profile :spindle do
#   metadata_dev '/dev/vdd'
#   data_dev '/dev/vde'
# end

profile :ssd do
  metadata_dev '/dev/sdd3'
  data_dev '/dev/sdd2'
end

default_profile :mix

lsblk結果(sdc=HDD, sdd=SSD)

sdc                          8:32   0 232.9G  0 disk
├─sdc1                       8:33   0   180G  0 part
│ ├─vg2-back--pool (dm-2)  251:2    0    60G  0 lvm
│ ├─vg2-back40g (dm-3)     251:3    0    40G  0 lvm
│ └─vg2-back10g (dm-4)     251:4    0   9.8G  0 lvm
└─sdc2                       8:34   0    40G  0 part
sdd                          8:48   0 238.5G  0 disk
├─sdd1                       8:49   0   180G  0 part
│ ├─vg1-cache--pool (dm-0) 251:0    0    20G  0 lvm
│ └─vg1-Hercules (dm-1)    251:1    0 117.2G  0 lvm
├─sdd2                       8:50   0     2G  0 part
└─sdd3                       8:51   0     1G  0 part

以下もお願い出来ればすばらしい. 興味があるならばそれを行動で表明しなければいけない.

  • dmtsにテストを投稿する. Rubyコードを書く必要がある. dmtsにいきなり投稿するのはdmts自体を知る必要があるので, まずはシェルで書いてこんなテストやったがどうかと私に提案して欲しい. 世界のプロジェクトに貢献する良い機会だ.
  • ライトブーストについてブログなどで解説文を書く. 出来れば英語.