ベンチついでに

UnixBenchを仮想化環境で使ってみたときに、ふと、以前TOMOYO Linuxに対してUnixBenchをとった結果を思い出した。


今年7月頃にとっておいたもので、カーネル2.6.26 + TOMOYO Linux 1.6.8を、OpenBlockS266とOpenMicroServerで計測。

やっていることは、

  • ファイルとネットワーク関連のアクセスコントロールを有効にしたもの
  • 全てのアクセスコントロールを有効にしたもの

TOMOYO Linuxを組み込んでいない素のカーネルと比較してます。一部計測できなかったものもあったので、計測できたものだけ載せます。
また、見にくいので、素のカーネルに対する比のみ。要望があれば値も出します。

OpenBlockS266

テスト項目 file+net all
Dhrystone 2 using register variables 99.99% 99.98%
Double-Precision Whetstone 100.00% 100.00%
System Call Overhead 92.68% 92.73%
Pipe Throughput 86.75% 88.92%
Pipe-based Context Switching 76.68% 80.92%
Process Creation 98.25% 98.79%
Execl Throughput 85.48% 77.11%
File Read 1024 bufsize 2000 maxblocks 88.07% 88.05%
File Write 1024 bufsize 2000 maxblocks 99.53% 98.55%
File Copy 1024 bufsize 2000 maxblocks 89.03% 88.85%
File Read 256 bufsize 500 maxblocks 81.59% 82.16%
File Write 256 bufsize 500 maxblocks 97.83% 98.71%
File Copy 256 bufsize 500 maxblocks 83.61% 84.69%
File Read 4096 bufsize 8000 maxblocks 95.03% 93.73%
File Write 4096 bufsize 8000 maxblocks 100.39% 93.02%
File Copy 4096 bufsize 8000 maxblocks 91.08% 88.42%
Arithmetic Test (type = short) 99.96% 99.95%
Arithmetic Test (type = int) 99.96% 99.95%
Arithmetic Test (type = long) 99.96% 99.95%
Arithmetic Test (type = float) 100.28% 100.54%
Arithmetic Test (type = double) 99.81% 99.80%
Arithoh 99.96% 99.95%
Dc: sqrt(2) to 99 decimal places 98.22% 98.02%
Recursion Test--Tower of Hanoi 99.97% 99.96%
メモリ 素のLinux file+net all
Mem: total (注) (kB) 63,052 62,968 62,968
Mem: used (kB) 12,220 12,976 13,048
Mem: free (kB) 50,832 49,992 49,920
Mem: buffers (kB) 128 132 132

注) rootfsイメージをメモリ(64MB)上に展開しているので、TOMOYO Linuxを使うとメモリトータルは少し小さくなります。

ポリシファイル file+net all
domain_policy.conf: size 32,120 75,614
domain_policy.conf: line 986 3,108
exception_policy.conf: size 10,163 10,163
exception_policy.conf: line 292 292
system_policy.conf: size 0 212
system_policy.conf: line 0 6
/proc/ccs/meminfo file+net all
Shared: 20,480 20,480
Private: 24,576 53,248
Dynamic: 608 608
Total: 45,664 74,336

OpenMicroServer

テスト項目 file+net all
Dhrystone 2 using register variables 100.26% 100.26%
Double-Precision Whetstone 107.93% 107.93%
System Call Overhead 99.57% 99.57%
Pipe Throughput 68.40% 68.51%
Pipe-based Context Switching 79.30% 77.61%
Process Creation 105.53% 105.54%
Execl Throughput 91.59% 84.79%
File Read 1024 bufsize 2000 maxblocks 100.22% 101.29%
File Write 1024 bufsize 2000 maxblocks 126.51% 126.20%
File Copy 1024 bufsize 2000 maxblocks 108.30% 109.82%
File Read 256 bufsize 500 maxblocks 104.69% 104.89%
File Write 256 bufsize 500 maxblocks 134.45% 134.47%
File Copy 256 bufsize 500 maxblocks 112.93% 112.93%
File Read 4096 bufsize 8000 maxblocks 101.37% 103.19%
File Write 4096 bufsize 8000 maxblocks 114.92% 115.01%
File Copy 4096 bufsize 8000 maxblocks 106.33% 108.59%
Arithmetic Test (type = short) 100.21% 100.21%
Arithmetic Test (type = int) 100.21% 100.21%
Arithmetic Test (type = long) 100.20% 100.21%
Arithmetic Test (type = float) 99.64% 99.64%
Arithmetic Test (type = double) 99.80% 99.81%
Arithoh 100.20% 100.21%
Dc: sqrt(2) to 99 decimal places 103.16% 102.98%
Recursion Test--Tower of Hanoi 100.14% 100.14%
メモリ 素のLinux file+net all
Mem: total (kB) 126,636 126,544 126,544
Mem: used (kB) 13,928 14,764 14,820
Mem: free (kB) 112,708 111,780 111,724
Mem: buffers (kB) 120 120 120
ポリシファイル file+net all
domain_policy.conf: size 32,120 74,502
domain_policy.conf: line 986 3,108
exception_policy.conf: size 10,245 10,245
exception_policy.conf: line 294 294
system_policy.conf: size 0 212
system_policy.conf: line 0 6
/proc/ccs/meminfo file+net all
Shared: 20,480 20,480
Private: 24,576 53,248
Dynamic: 640 640
Total: 45,696 74,368

結果

一部、素のカーネルよりも高速になると結果が出てしまっているもの(特にOpenMicroServerのファイル関連)ものはありますが、
この結果以外の他の組込み機器の結果も含めてみると、

  • TOMOYO Linuxを使うことにより、Pipe Throughput、Pipe-based Context Switching、Execl Throughputのパフォーマンスが落ちる。
  • 特に、Execl Throughputは、ポリシーサイズが大きくなるにつれ、パフォーマンス低下が大きくなる。

という傾向になりました。

OpenBlockS 600 到着

今日帰宅すると OpenBlockS 600 が届いていた。
箱は思ったよりも小さいですね。(HHKと比較)


で、本体。


さっそく開けてみると、こんな感じ。CPUとメモリは、基板の裏側に配置され、シリコンゴムでアルミ筐体とくっついています。CFソケットの左に見えるのはFlash ROMです。


動作させるとCPUなどの熱により筐体の下側が熱くなるわけですが、放熱のため、アルミの板を筐体に浮かせて付け、さらに足がつき、空気が通るようになっています。以前展示会で見たときは、このアルミの板は付いていませんでした。


とりあえず、以上です。動作はまた今度。開発マシンの環境を整えるのでそれが終わってから。


追記:すでに、こんなサイトがありました。

KVMのネットワーク

ゲストOSを外部と接続できるようにするため、ホスト側でブリッジを使う。
OSは、Fedora 11。


参照したサイトは


まず、/etc/sysconfig/network-scripts/ にある ifcfg-eth0 を ifcfg-br0 としてコピーしたあと、ifcfg-eth0 を修正。
「BOOTPROTO」をコメントアウトし、「BRIDGE=br0」を追記。

# Networking Interface
DEVICE=eth0
#BOOTPROTO=dhcp
HWADDR=00:19:66:xx:xx:xx
ONBOOT=yes
BRIDGE=br0


先ほどコピーした、ifcfg-br0 を以下のように修正。
「TYPE=Bridge」を追記する。

# Networking Interface
DEVICE=br0
BOOTPROTO=dhcp
HWADDR=00:19:66:xx:xx:xx
ONBOOT=yes
TYPE=Bridge


ネットワークを再起動。

[root@akizuki ~]# /etc/init.d/network stop
インターフェース br0 を終了中:                             [  OK  ]
インターフェース eth0 を終了中:                            [  OK  ]
ループバックインターフェースを終了中                       [  OK  ]
IPv4 パケット転送を無効化中:  net.ipv4.ip_forward = 0
                                                           [  OK  ]
[root@akizuki ~]# /etc/init.d/network start
ループバックインターフェイスを呼び込み中                   [  OK  ]
インターフェース eth0 を活性化中:                          [  OK  ]
インターフェース br0 を活性化中:  
br0 のIP情報を検出中... 完了。
                                                           [  OK  ]
[root@akizuki ~]# 


システムメニューから、「管理」→「ファイアーウォール」を選択して「ファイアーウォールの設定」を起動。
「信頼したインターフェイス」を選択して、「br0」をチェック。


NetworkManagerが動作していると、起動時に上記で編集したifcfg-eth0やifcfg-br0を利用してくれないので、動作しないようにする。で、代わりにnetworkを起動する

[root@akizuki ~]# chkconfig NetworkManager off
[root@akizuki ~]# chkconfig network on
[root@akizuki ~]# 

仮想化環境でさらに仮想化

Xenの完全仮想化環境上では、さらに準仮想化の環境が動作します。
以下のスナップショットは、CentOS上でCentOS(完全仮想化)をXenカーネルで動作させ、さらにその上でCentOS(準仮想化)が動いています。


とりあえず動くということで、実用性はありません…
しかもどこにマウスがあるのか、わからなくなりますwww