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

IO benchmark HAMMERFS @ DragonflyBSD 4.6.1 vs. ZFS @ FreeBSD 11.0 vs. btrfs @ Linux 4.9.6 (Archlinux 2017.02 live) on kvm guest + physical disk

概要

近年、どうのこうの、はい。そこで本調査では、飽きないかぎりやってきます。kvm guest でやるのは別に IO をどうのこうのとかではなく、単純にベアメタルの環境にあれこれインストールするのがだるいからです。

環境

HDD は古い余ってるやつを適当に使います。なんかまっさらですね。なんだこれ。

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.28.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x708a25e6

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1        2048 976769023 976766976 465.8G  7 HPFS/NTFS/exFAT

CPU は Intel® Celeron® CPU G1840 @ 2.80GHzです。新しいけどしょぼいやつですね。メモリは 4GB しかありません。

セットアップ

HDD は場所によって速度が違ったりするのでなんか適当にパーティション切ってマルチブートにしてそれぞれで地元のパーティションでベンチするというわけにいきませんね。だるいね。このまっさらなディスク全体を kvm instance に食わせて自由自在に使ってもらうことにしましょう。 ……ウッ、 HDD を机の上に置いてたら低周波で気持ち悪くなってきた……

QEMU の設定

さて、まあアレやな。こんなもんでどないでしょう。本当は OS の性能を知りたいので SATA コントローラごと渡してしまうのが筋なんでしょうけど、ちょいちょいちょいということで、ほいほいほいです。

# #ほいほいほいの様子
# qemu-system-x86_64 -drive file=boot.img,index=0,if=virtio -drive file=/dev/sdb,cache=none,index=1,if=virtio -vnc :1 -m $(expr 1024 \* 3)M

host の環境

4.9.6-gentoo-r1 とのこと。そういうわけなのでひとことで完全な再現状態を表現するのは難しい。わかってくれ。

バトルするひとたち

最近の HAMMER が気になってるのでやります。 {ext4, btrfs}@linux, ufs@{Dfly, F}, ZFS@F あたりと戦わせますかね。

  • Archのアレ
  • Dfly
  • F

たたかい

mkfs & tar の展開 & ファイルツリーの削除 & fio (randrw) & fio (seqread)

もちろん OS ごとに実際は作業するわけですが、便利のために、タスクごとにわけてかきます。こう、行列の転置みたいなやつや。

とりあえずあらかじめ手元にやっときます。

% curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.1.tar.xz > l.tar.xz
% ip a
% darkhttpd .

こういうこまやかな準備がね…… こうして、こういうことをしようなどという考えです。

# wget http://192.16.XX.XX/l.tar.xz
# tar xf l.tar.xz
# cd linux*/

FS 作る速度

UFS@FreeBSD

# time newfs /dev/vbd1
:
:
0.165u 0.034s 0:06.33 3.0% 38+334k 7+774io 0pf+0w

ZFS@FreeBSD

そういえば、 ZFS って何をもって FS を作ったっていうんだ? tank ?

UFS@Dfly

# time newfs /dev/vbd1
:
:
1.628u 1.629s 3:04.71 1.7% 21+244k 0+0io 0pf+0w

HAMMERFS@Dfly

# time newfs_hammer -L TEST /dev/vbd1
:
:
1.827u 1.124s 0:11.84 24.8% 17+65k 0+0io 0pf+0w

btrfs@Linux

# time mkfs.btrfs -f /dev/vdb
:
:
mkfs.btrfs -f /dev/vdb 0.00s user 0.01s system 5% cpu 0.231 total

mkfs コマンドの実家のような安心感。

FS づくり、 btrfs や ZFS のような一瞬で作り終わるやつと昔ながらの UFS 作るやつみたいな二種類しかないと思っていたら、 HAMMER は一瞬ではないが早く終わるみたいな馴染みのない挙動をしますね。

tar のコピー + 展開 + 削除

delete.sh はこれである↓↓

#!/bin/tcsh

foreach x ( `find linux-4.10.1` )
    rm $x >& /dev/null
end

UFS@FreeBSD

# time cp ~/l.tar.xz .
0.000u 0.089s 0:01.49 5.3% 32+264k 2+721io 0pf+0w
# time tar xf l.tar.xz
10.344u 6.586s 1:38.42 17.1% 71+174k 19+132558io 8pf+0w
# time ~/delete.sh
21.101u 76.885s 2:22.46 68.7% 296+298k 2980+114394io 0pf+0w

ZFS@FreeBSD

# time cp ~/l.tar.xz .
0.000u 0.052s 0:00.07 71.4% 22+184k 5+719io 0pf+0w
# time tar xf l.tar.xz
10.490u 7.289s 0:18.97 93.6% 70+171k 45+67682io 0pf+0w
# time ~/delete.sh
19.932u 74.867s 1:35.40 99.3% 299+299k 7372+0io 0pf+0w

UFS@Dfly

# time cp ~/l.tar.xz .
0.000u 0.124s 0:01.21 9.9% 8+98k 4+3860io 0pf+0w
# time tar xf l.tar.xz
10.276u 4.866s 1:23.05 18.2% 28+69k 1030+263146io 14pf+0w
# time ~/delete.sh
12.291u 62.247s 4:33.96 27.2% 28+1295k 0+228788io 0pf+0w

HAMMERFS@Dfly

# time cp ~/l.tar.xz .
0.000u 0.302s 0:00.81 37.0% 8+98k 4+2560io 0pf+0w
# time tar xf l.tar.xz
9.575u 2.845s 0:18.25 68.0% 27+67k 26+0io 14pf+0w
# time ~/delete.sh
10.909u 54.797s 1:07.90 96.7% 26+1186k 18+0io 0pf+0w

btrfs@Linux

# time cp ~/l.tar.xz .
cp ~/l.tar.xz . 0.00s user 0.04s system 96% cpu 0.038 total
# time tar xf l.tar.xz
tar xf l.tar.xz 7.92s user 3.05s system 75% cpu 14.594 total
# time ./delete.sh
./delete.sh 3.07s user 37.90s system 47% cpu 1:26.15 total

さて、おもろいな、全体的に UFS がしょぼすぎる。 btrfs は速い。 HAMMER もまあいうて速い。ZFS はそれらを追う形。

グラフにするとこうなる。こうして見ると、結構雰囲気が分かる。

f:id:Ieshoriveul:20170228094659p:plain

FIO (randrw, seqread)

UFS@FreeBSD

# fio -rw=randrw -size=100M -name=/mnt/fio-test | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/TdFL
# fio -rw=read -size=100M -name=/mnt/fio-test2 | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/BFej

ZFS@FreeBSD

# fio -rw=randrw -size=100M -name=/mnt/fio-test | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/QXhT
# fio -rw=read -size=100M -name=/mnt/fio-test2 | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/ZNbE

UFS@Dfly

# fio -rw=randrw -size=100M -name=/mnt/fio-test | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/TIMZ
# fio -rw=read -size=100M -name=/mnt/fio-test2 | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/XDef

HAMMERFS@Dfly

# fio -rw=randrw -size=100M -name=/mnt/fio-test | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/giFF
# fio -rw=read -size=100M -name=/mnt/fio-test2 | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/SQNL

btrfs@Linux

# fio -rw=randrw -size=100M -name=/mnt/fio-test | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/hUVf
# fio -rw=read -size=100M -name=/mnt/fio-test2 | curl -F 'sprunge=<-' http://sprunge.us
http://sprunge.us/SOOC

f:id:Ieshoriveul:20170228194708p:plain

btrfs がランダムアクセスに弱いですね。KVM 上の raw デバイスだとそういうことがあったような気がしなくもない。 HAMMERFS は思ったよりも健闘してますね。

まあざっくりこんなもんでいいでしょう。 MySQL のベンチとかもやろうと思えばすべきだと思いますが、まあ、ね。 もう少し真面目にやってくれなどの気持ちがあれば、お金をくれ次第 Ryzen + NVMe でベアメタルでやってやんよ。頼むで。

光線や背景の描き込みをやっていく例

{ 下書きを書いてたはずがいつのまにかなくしていた } { 今回用に絵を描くつもりが、イケメンが大麻を吸ったりマジックマッシュルームを決めたりMDMAの生みの親とダベったりする番組みてたらあと2分になってた }

というわけでとりあえず一昨日の絵の経過を貼ります。

絵のスキルについて

絵は小学校までは得意だった、とくに幼稚園の頃は細かいところまでよく描くものだと褒められたものだ。ところが中高大とまったく描かなくなって上手い小学生あたりで手の練度は止まっているわけですが、その後生活で身につけた知識や空間把握によってどうにか底上げがなされているっぽいというのが現状

というわけで実例

田中角榮を殺すために作る工程を描く

キャプをチャーして貼っただけなので画像はもうめちゃめちゃ

着手

まず暗い部屋に光がやっていっている絵をゴシゴシするというコンセプト以外ないところから描き始める。 例のアレのパクリのつもりで左端に机をおいたが、完全に例のアレがうろ覚えだったのでまあいいかで部屋を箱にしていった結果まったく違うものになった。右手が寂しいので手癖でピアノを配置、同様に奥にベッドと本棚。アレのパクリなので花瓶か何かを配置。

f:id:Ieshoriveul:20161205074107p:plain

着手2

Overlay にしたレイヤで青白い光をゴシゴシっとする。このとき反射も考えておく。ピアノはテカる。

f:id:Ieshoriveul:20161205074109p:plain

無駄骨

別レイヤで適当に明るそうなところに明るい色を、暗そうなところに暗い色を塗ったり塗らなかったりしろ。

f:id:Ieshoriveul:20161205074112p:plain

着手3

その後それぽい色で塗りつぶした。前者の作業は無駄です。このときまで机に椅子がないことに違和感を抱かなかったことが丸分かり。

f:id:Ieshoriveul:20161205074119p:plain

やっていき

パースがぶっ壊れているので直す。使ってるソフトにもパース定規はもちろんあるが、PSの集中線みたいなかっこいいやつがないので適当にベクタを引きまくる。みなさんは本物のパース定規をつかってください。塗りはやっていくしかない。

f:id:Ieshoriveul:20161205074205p:plain

やっていき2

引き続いてやっていきます。

f:id:Ieshoriveul:20161205125442p:plain

暗い壁みたいな無をどうやって塗ればいいのかわからなかったので[レンブラント wiki]などとググって絵をみるも、筆の物理特性をいかしてテクスチャを作っていたのでずりぃなと思った。適当にテクスチャを貼ろうとおもったがよくわからないので、何回か非黒で暗くなるまで塗るといい感じになった。あとはやっていきます。 f:id:Ieshoriveul:20161209014925p:plain

#

panpanya をパクるとこうなります。

f:id:Ieshoriveul:20161209000110p:plain

最近描いた絵とその話

まず絵の一部

読者はふつうスクロールする前に帰ろうとするので、その前に非文字の一部をババーっとして過度な期待をさせるのがキャッチするコツ f:id:Ieshoriveul:20161203032010p:plain

0

この記事は以下のアドベントカレンダーの3日めの記事です。 www.adventar.org

いまのところ誰もこのアドベントカレンダーについて説明せぬままやっていっていますが、ちょっとお初の人にむけて説明を。 某県某所での悪ノリの一つとして神絵師になっていきをしていく/名乗っていきをするというのがあり、そういうことになっています。コトの発端は @0x_osyoyu が「俺はプログラマじゃなくて神絵師になりたかった」と突然言い出し衝動的に絵の練習を始め、まわりの人間が一緒になって練習に付き合ったり先んじて練習をやっていったりするようになりました (共感できる発言をすると共感されがち) 。

そんなこんなで僭称天皇よりも高頻度に神絵師になる/神絵師であるという主張などアレやコレが起きていっています (このムーブメントの前に私は皇帝を名乗って勅令や戸籍を乱発する遊びをしていたが、すぐ飽きた。それにくらべ持続的にコトが起きている) 。もともと @0x_osyoyu は衝動的なところがあって、先日も突如夜中に航空券を取得して夜明けとともに札幌旅行にいった末帰宅困難になりフェリーで帰ってくるなどをしていたので、そんな彼のおもいつきに長期間にわたり数人が乗っかっていっているということはやはりみんなプログラマじゃなくて神絵師になりたかったんだろうね。

そいうわけで神絵師アドベントカレンダーですが、以上のノリでアレコレがゴーイングオンという感じなわけで、とはいえホンマモンの神絵師による解説記事などがあったりするとうれしいし勘違いした本物が無双してくれたら超ラッキーっすね。はい。

こういう状況を敢えて挑んでいっていくのはけっこうたいへんなんですよというリンク

また絵の一部

前置きが長くなったところでもう一発かますと良い気がする インフルの予防接種と同じ f:id:Ieshoriveul:20161203032146p:plain

これはなにの記事か

今日はイントュオス・フォーを某県某所にフリーでレンドした @nullkal くんに感謝して (単純に液タブを買って使わなくなったので置いてくれたという経緯っぽい) 、いろいろワチャワチャした話などですね。

某所の slack に #kamieshi チャンネルというのがあり、練習したアレコレをベタっとすると気心のしれたピーポーから指摘がタダでもらえるサービスになっています。もちろんそこに私もベタベタしているとはいうものの、ジ・オープンインターネットに公開するにはためらわれることがあり、ためらわれる理由の一つに描く顔に納得してないというのがあるので、逆にいえば非顔絵を貼るとセーフになりがちというのがあり、そういう絵を描きました。

話2

話として、一応役立ち情報をいうと pixivsensei というのがあり、そこの講座はまともにみてないんですが、みると役立つはずというのがあります。あと、練習するネタとして pixivsensei が毎日出すお題に沿って描くとモチベーションが維持しやすいというのがあり、これは私が確かめたのでガチです。たとえば次の絵は昨日 (一昨日?) のお題であるところの「映画」の絵です。ところで映画というテーマでなんか描くというのは若干むずかしいっすね。

話3

ふだん ThinkPad とめちゃ古いペンタブでカキカキしていたのですが、某所のまともなディスプレイを使うと色が全然違ってマジビビっしたね。いや、 ThinkPad のディスプレイがゴミゲロカスということははっきりしていたんですが、さっき描きながら見比べたら、善良なディスプレイではウニのように鮮やかに見える色が ThinkPad のディスプレイでは色あせたウンコの色に見えるという感じでした。これは本当です。絵を描くにはまず ThinkPad を捨てるところから着手するのがよさそう。人は手元に ThinkPad があると使ってしまうので、捨てなければならない。絵を描くのにトラックポイントはいらないぞ。

これは様子です。

全体像 (「#映画」 の絵)

f:id:Ieshoriveul:20161203025236p:plain

練習についてなど

さっきいったコトの発端のときにボールペンでやっていったというのがあり、そのときはこんな感じでした f:id:Ieshoriveul:20161203033839p:plain (これは模写です) f:id:Ieshoriveul:20161203034632p:plain (これも模写)

ところでペンタブで描いて練習したときよりも最初に腕試しでボールペン絵をやっていったときの正直綺麗に見える気がするんですが、そういうギャップをね、やっていきたいとおもうわけですよ。 最初にペンタブで描いたときは……その後練習をして判明したんですが……おっと

また次回 (なぜなら 25 日分を数人で埋めねばならないから。多くの人がエントリーすればするほど私の記事は長くかつ有益になります)

広告

@0x_osyoyu の絵描きアカウント @ka3e4 の更新が滞りがちになっています。やっていってほしいですね。次回、ついにコトの発端の張本人 @0x_osyoyu の番です。ステイチューンド

追記

公開してから直すのずるい気がするけど、公開した直後に気づくこともありがち。寝る直前に眺めてたら影を足したくなったんで足しました。

f:id:Ieshoriveul:20161203061800p:plain 新しいレイヤを一番上に作って適当にほぼ真っ黒なペンでベタベタクソ雑に影を足して burn に設定して透明度をいじったほんの1〜2分の作業でも絵の魅力が変わってくる気がします、まず目が自然にいく箇所が目について欲しい箇所に誘導されやすくなって、それもいい感じですね。

秘伝のアドレス帳のこと

ガラケーがあらゆるフォーマットをぶっ壊しながら突っ走っていて、そのまわりでみんなが生まれ、そだち、そして死んでいった古き良きゼロ年代のある年末のこと。 殊勝なことに私は年賀状を人々に出そうと思って、当時持っていた京セラの小さなガラケーから microSD カードを経由して MS のなんか email みるやつ (名前もうわすれた) へエクスポートしては年賀状を (メールで) 送信したりして有意義な年始を向かえました。(容姿端麗成績優秀、さらに明るく社交的な性格なので皆に好かれていたし友だちも多かった)

それから寒い寒いと言って手を擦りながら初詣から帰ってくると、家ではパソコンに入っているメーラーが色々破滅的になっているアドレス帳とともに待っているわけですね。これをいつしか ThunderBird にエクスポートし、さらにいつしか (中3くらいかな) gmail にエクスポートしてそのたびにソフトウェアの時空の隙間を通ったアドレス帳は着実に破綻していきました。破綻です。

いつしか、名前と電話番号が入れ替わっている、住所やメモ欄がおかしくなっている、名前がなくなっている、同じ人間が二重三重に登録されている、プロフィール中に同じ電話番号が3つも並んでいる、どれが最新のメールアドレスか分からない (これは管理を怠った私に問題があるが……) と個性豊かなデータが何百件か gmail に入っているということになります。

ときは下って スマートフォン/クラウド全盛期時代、何が起きているかというと、ちょっと説明が難しいのですが……… 例えばあんまり仲もよくなかったクラスメートの住所が Google Maps 上に表示されていたり (たくさんある連絡先のうちわずか3件だけ。彼・彼女らにこれといった共通項はなさそうだ) 、 携帯を介して LINE や facebook にこれが輸出されていってとにかくすごいことになったり、すごい。すごいことになってきたな〜〜〜。これはもう解きほぐす気力もないし一生私はこの乱雑に破滅したデータと緩やかにつきあって暮らしていきます。

アラブねこ

この記事は猫写真 Advent Calendar 2015 - Adventarのやつです。撮りためた猫写真をひたすら貼っていってくだしあとのこと

f:id:Ieshoriveul:20130818183957j:plain 猫の餌

f:id:Ieshoriveul:20130822164204j:plain 魚市場ねこ。湾岸ねこの食文化は海産物も多いねこ。

f:id:Ieshoriveul:20130822184317j:plain みずたまりは涼しげアラブねこ。

f:id:Ieshoriveul:20130822184423j:plain f:id:Ieshoriveul:20130822184435j:plain きのぼりねこ。きのうえにも涼しげねこ。

f:id:Ieshoriveul:20130822232253j:plain f:id:Ieshoriveul:20130822232318j:plainf:id:Ieshoriveul:20130822232302j:plainf:id:Ieshoriveul:20130822232329j:plain ゆうぐれおさんぽねこ。

f:id:Ieshoriveul:20130827122835j:plain UNIX

f:id:Ieshoriveul:20130829232227j:plain ねこの敵、野犬。夜中山の中で吠える。

f:id:Ieshoriveul:20130902023450j:plainf:id:Ieshoriveul:20130902023525j:plainf:id:Ieshoriveul:20130902024303j:plain ねむいけどねつけない微妙な夜のねこ。