DMA - みる会図書館


検索対象: UNIX MAGAZINE 1999年7月号
18件見つかりました。

1. UNIX MAGAZINE 1999年7月号

ク 3 PC UN Ⅸのヘンチマ 表 3 BYTE UNIX benchmark 測定結果 ( テストマシン 1 : Celeron 400 、 テストマシン 2 : K6-III 400 ) マ・シン名 テストマシン 1 テストマシン 2 DMA 転送の有無 有 ・商化フラグの有無 虹 有 有 有 算術寅算 ( 青度浮重ル」載点 ) 2 , 541.7 48.8 47.4 48.7 47.4 27.0 27.0 30.4 30.3 Dhrystone2( 整寅算 ) 22 , 366.3 34.8 40.1 33.6 39.9 34.9 37.1 35.0 37.0 システムコーノレ (execl) 16.5 19.9 19.7 112.7 113.6 23.6 131.3 23.3 125.6 ファイルコピー ( 30 秒 ) 179.0 49.1 49.4 34.8 35.3 48.8 48.9 33.9 34.3 パイプ・コンテキストスイッチ 1 , 318.5 23.7 24.1 24.4 24.6 21.1 21.4 21.3 21.4 負荷性能 ( 8 同時実行 ) 4.0 27.9 28.1 24.8 25.0 29.2 30.5 26.9 27.1 6 結果の合言 t 204.1 302.6 167.4 275.7 186.0 285.0 184.6 299.4 6 結果の勺 47.5 34.0 50.4 31.0 30.8 49.9 27.9 46.0 図 2 BYTE UNIX benchmark 測定結果 テストマシン 1 (Celeron 400 ) ・ DMA あり・最適化なし ロ DMA あり・最適化あり ・ DMA ない最適化あり ロ DMA ない最適化あり 参照直 有 テストマシン 2 (K6-III 400 ) 第 DMA あり・最適化なし ロ DMA あり・最適化あり 第 DMA なし・最適化あり ロ DMA なし・最適化あり 140 120 100 80 60 40 20 0 140 120 100 80 60 40 20 0 0 0 0 今 今 4 4 表 4 SPEC CPU95 の結果 ( テストマシン 1 : Celeron 400 、テストマシン 2 : K6-III 400 ) マヾ / ン名 OS SPECint-base95 SPECint95 SPECfp-base95 テストマシン 1 FreeBSD 11.0 11.2 8.44 テストマシン 2 12.6 6.73 12.6 テストマシン 1 Linux 11.6 11.6 8.28 テストマシン 2 12.5 12.8 6.69 テストマシン 1 NetBSD 11.2 11.4 6.19 テストマシン 2 12.4 12.3 6.34 ・以下の各マウント・オプションごとの引側 —default ( オプションなし ) ー noat ime イ寸き —async 付き —noatime および async 付き ・以下の言・則対象ごとに言欟リ ーテストマシン 1 の IDE ディスクおよび SCSI ディ スク ーテストマシン 2 の IDE ディスク テストマシン 1 とテストマシン 2 における iozone の れ則結果を表 6 と表 7 に Bonnie の言欟リ結果を表 8 と SPECfp95 8.38 6.73 8.53 6.70 6.16 6.34 表 9 に小す。 15 UNIX MAGAZINE 1999.7

2. UNIX MAGAZINE 1999年7月号

特集 図 1 BYTE UNIX benchmark の化フラグ 山も直イヒ有 -s -static -O -finline-functions -funroll-loops -fomit-frame-pointer 去も直イ墲 -OO -static 3. SRC ディレクトリ /lib/libm/ に移って make を実行 4. make install を夫行 ファイ ) レシステム関連 NetBSD 1.4 では、 NetBSD 1.3. x 以前と上交して IDE ディスクのデバイスドライバの生能向上がみられる。 とくに、 PCI IDE インターフェイスと DMA 転送モー ドのサポートにより、 CPU 効率と転幻度が大幅に向ー E ーー 0 IDE デバイスのデバイスドライバは、できるかぎり DMA モードでディスクへアクセスするようになってい る。そのため、 DMA 中幻医をサポートしているハードウェ ア (IDE インターフェイスおよびディスクドライプの両 マウント・オプションははかの OS と同様に カーネルソースを参照してほしい。 場合は、カーネルを再構築しなければならない。詳しくは IDE デバイスの DMA サポートを明示的に指定する 方 ) を用いているかぎり DMA で沖幻される。 ・ async 、 noatime イ寸き ・ noatime イ寸き ・ async 付き ・オプションなし 異なるが、それらについてはあとで説明する。 で引側している。、、オプションなし " の挙動は OS ごとに 測定結果 (NetBSD 1.4 ) BYTE UNIX benchmark 14 の言れ則と同様の設定を用いた ( 図 1 ) 。 最適イヒフラグについては、前回の FreeBSD 、 Linux で ・ IDE ハードディスクの DMA サポートの有無 ・コンパイル時の最適化の有無 4 通り則した。 BYTE UNIX benchmark は、以下の条件の組合せで 言欟リ結果を表 3 に、それぞれの条件ごとの差異を図 2 に示す。表 3 は、代表的と思われる 8 不鶤頁のべンチマー ク結果の抜粋である。それぞれの値は、参照値を 1 とした 相対値である。 SPEC CPU95 SPEC CPU95 は以下の条件で言則した。 ・ GENERIC カーネルを使用 ・ CFP95 のテストモジュールとして egcs ( 1.1.2 ー RE - LEASE) の Fortran コンパイラ g77 を利用 ・各テストモジュールの系医し則数は 3 回に設疋 NetBSD に特有な直演算ライプラリ問題を考慮して、 ・ i387 FPU 命令を使用しない数値演算ライプラリ ( デ フォルト ) を利用 ・ i387 FPU 命令を使用する新直演算ライプラリを利用 の 2 通りで言則している。 前者の結果を図 3 ~ 4 に、後者の結果を図 5 ~ 6 に示す。 これらの結果を上交すると分かるが、題直演算ライプラ リの不頁による性能差はあまり大きくない。また、 SPEC- mark は表 4 のようになった。はかの OS と上肆交して、 SPECfp-base95 、 SPECfp95 の値か低くなっている。 これらの理由についてはあとて考察する。 lmbench lmbench は以下の条件で測定した。 ・ GENERIC カーネルをイ屯用 ・ IDE ハードディスクの DMA サポートの有無 言則には Imbench2 alphal 1 を利用した。 テストマシン 1 およびテストマシン 2 における lm- bench の則結果を表 5 およひ図 7 ~ 8 に示す。 10ZOne 、 iozone と Bonnie の計測は以下の条件でおこなった。 ・ IDE ハードディスクの DMA サポートの有無 UNIX MAGAZINE 1999.7

3. UNIX MAGAZINE 1999年7月号

3 PC UN Ⅸのヘンチマーク 表 6 iozone 言わ員黠果テストマシン 1 (Celeron 400 ) 表 7 iozone 言則結果テストマシン 2 (K6-III 400 ) 言鵡内容 IDE IDE (DMA) 言鵡矣内容 SCSI default 書 ; ムみ 6 , 275 , 140 9 , 110 , 130 13 , 888 , 423 言ムみ 6 , 525 , 052 14 , 285 , 776 9 , 206 , 110 ー 0 noatime 書込み 6 , 271 , 387 ロもムみ 6 , 590 , 672 ー 0 async 書込み 6 , 282 , 660 言もムみ 6 , 578 , 268 ー 0 noatime , async 書込み 6 , 237 , 810 ーもムみ 6 , 653 , 401 IDE (DMA) 9 , 198 , 035 9 , 189 , 973 IDE default 書込み 6 , 121 , 284 ⅱも囚み 6 , 301 , 538 ー 0 noatime 書込み 6 , 026 , 298 言ルムみ 6 , 248 , 963 ー 0 async 書込み 6 , 117 , 712 ムみ 6 , 263 , 894 ー 0 noatime , async 書込み 6 , 057 , 631 ムみ 6 , 331 , 980 14 , 074 , 845 14 , 037 , 161 9 , 181 , 926 9 , 246 , 701 9 , 039 , 448 9 , 198 , 035 9 , 086 , 447 9 , 165 , 874 9 , 206 , 110 13 , 999 , 679 9 , 214 , 200 14 , 344 , 404 一三料 9 , 157 , 868 9 , 438 , 127 ( 単位はバイト / 秒 ) 9 , 198 , 035 14 , 037 , 161 9 , 489 , 375 14 , 150 , 823 ( 単位はバイト / 秒 ) 表 8 Bonnie 言お印黠果テストマシン 1 (Celeron 400 ) ランダム 文字単位 プロック単位 再書込み 文字単位 プロック単位 アクセス オプション 速度 速度 速隻 速度 速度 CPU CPU CPU CPU CPU CPU IDE default 5683 6827 95.7 2176 96.4 97.0 82.6 98.5 2.9 5200 6994 1.9 noatime 5672 7062 98.7 98.6 96.6 2186 3.0 5260 98.0 5660 82.3 2.2 5666 97.5 6898 97.6 97.5 96.8 2189 3.0 5238 5666 81.4 1.8 async async 、 noatime 5644 97.0 6898 96.8 97.4 7001 97.1 82.8 2191 3.0 5236 2.0 IDE(DMA) default 8565 noatime 9010 8819 async async 、 noatime 8707 SCSI default 13419 60.4 12333 noatime 13346 60.3 12284 13470 13017 60.6 async async 、 noatime 13417 60.4 12962 表 9 Bonnie 言印黠果テストマシン 2 (K6-III 400 ) 書込み ランダム プロック単位 文字単位 プロック単位 再書込み 文字単位 アクセス オプション 速度 速度 速度 速度 速度 速度 CPU CPU CPU CPU CPU CPU IDE default 82.7 5325 98.7 6591 97.2 2234 4.8 5115 96.8 6461 97.0 1.6 82.7 noatime 97.6 6581 97.1 2225 4.5 5150 97.6 5315 97.6 2.1 5315 97.0 2240 4.3 5135 97.2 6456 96.9 82.0 1.6 5365 97.2 6581 async 97.9 6774 2222 3.9 5164 5333 98.1 82.1 async 、 noatime 96.5 2.1 5333 98.1 IDE(DMA) default 8744 noatime 8681 8794 async async 、 noatime 8604 1 = ロ 二一一口 二 = ロ 8 ) 9 、一 8 ワ 0 一 8 一 1 -8 冖ーり - り 2187 10.2 10.3 2184 10.3 2179 10.3 2187 38.0 8408 40.0 8533 8572 39.1 38.6 8580 っ 0 っっっ 1 1 ・ 1 11 49.0 8436 49.6 9363 8782 49.5 49.4 9363 2.9 9243 2.8 9303 2.8 9252 2.8 9256 59.7 101.4 8.0 102.1 60.6 102.3 8.5 102.0 73.1 13292 73.1 13972 73.3 13470 73.4 14004 4 4 5 4 11 11 -1 11 4.0 13760 3.9 13767 3.9 13759 3.9 13797 15.8 3019 15.3 3016 16.2 3019 16.2 3016 一三ロ 47.7 9220 47.7 9334 47.7 9314 47.8 9334 10.2 89.3 10.3 90.0 10.3 89.7 10.3 90.8 8.7 9204 8.6 9209 8.6 9204 8.7 9219 15.7 2183 2175 15.7 2179 15.7 15.4 2185 8407 48.1 8407 47.8 8437 48.5 47.2 8314 っ 4 っ 1 一 1 っ 4 -11 、 1 1 1 19 UNIX MAGAZINE 1999.7

4. UNIX MAGAZINE 1999年7月号

ク 3 PC UN Ⅸのヘンチマー 図 11 Bonnie 測定結ヒ較 (DMA 、プロック単位アクセス ) 図 12 Bonnie 測定結ヒ較 ( 非 DMA 、プロック単位アクセス ) NetBSD 1 .4 FreeBSD 3.1 Linux 2.2.5 ル、 ル、 表 21 OS 別 Bonnie 言則黏果 テストマシン 1 (Celeron 400 ) ランダム 文字単位 プロック単位 再書込み 文字単位 プロック単位 アクセス 速度 CPU 速度 CPU 速度 CPU 速度 速度 隻 CPU CPU CPU IDE (DMA) マウント・オプション : default FreeBSD 3.1 8 , 045 38.5 8 , 003 11.4 2 , 997 6.0 8 , 199 39.0 8 , 263 10.5 328.9 3.5 Linux 2.2.5 7 , 274 98.6 13 , 952 19.9 3 , 546 10.4 5 , 621 69.2 9 , 283 8.1 382.6 NetBSD 1.4 8 , 565 38.0 8 , 408 2 , 187 10.2 2.9 9 , 243 49.0 8 , 436 37.3 88.7 1.3 IDE( 非 DMA) マウント・オプション : default FreeBSD 3.1 2 , 867 14.1 3 , 175 4.8 1 , 576 3.0 2 , 912 14.4 3 , 231 4.6 255.4 Linux 2.2.5 2 , 992 4 , 797 41.1 8.1 1 , 818 36.6 2 , 409 78.3 3 , 556 96.9 310.6 NetBSD 1.4 5 , 683 98.5 6 , 827 95.7 2 , 176 2.9 5 , 200 96.4 6 , 994 97.0 82.6 整寅算性能 実装されている数値演算関数は、 Linux 2.2.5 では 137 関 数であるのに対し、 NetBSD 1.4 では 45 関数であり、後 総合的にはライプラリ実装の差異は整数演算性能では 者では多くの数価寅算関数が C 言語で己されている。 あまりないようにみえるが、各テストモジュールごとの SPECfp95 のコードから直接呼び出されている数値演 SPECRatio 俵 19 ) からは、 OS によって若干の差が 算ライプラリ関数は、 Linux 2.2.5 も NetBSD 1.4 もア 表れていることが分かる。 センプリ言語で記述されている。しかし、 SPECfp95 が たとえば、 132. ijpeg テストモジュール 3 では、 Free- 使用している Fortran のランタイム・ライプラリの関数 BSD 3.1 のイ直がテストマシン 1 とテストマシン 2 でとも から呼び出されている数値演算ライプラリ関数は、 Linux に低いことから、 132. ijpeg テストモジュールによって実 2.2.5 ではアセンプリ言語で、 NetBSD 1.4 では C 言語 行されている演算処理の何かに FreeBSD 3.1 か不得意と で実装されている。 するものが含まれていると考えられる。詳細については、 明示的に FPU の利用を孑ミして作成した直演算ライ 他の手段を組み合わせて考察する必要があるだろう。 プラリを用いた場合も、 SPECfp95 の結果にはそれはど NetBSD 1.4 の浮動小魏点演算性能 差が生しなかった。その理由として、数価寅算ライプラリ NetBSD 1.4 で浮動小数点演算性能が低い原因として の最適化 (FPU 利用率 ) カ觝いといった孑則も可能では 考えられるのは、数値演算ライプラリの最適化の実装の違 あるが、厳密な検証にはさらに則を重ねる必要がある。 いである。 たとえば、ライプラリの違いによる景斧切田を調べる場 Linux 2.2.5 (Red Hat Linux 5.2 ) と NetBSD 1.4 の 合には、夫行時プロファイラなどにアプリケーション内の 数価寅算ライプラリを上交してみよう。アセンプリ言語で 関平出し情報を言求して分析するといったガ去がある。 3 132. ijpeg は、 JPEG の廸ー象をメモリ十てナ引伸長するテストモジ ュールである。 ニ = ロ OS 1 亠ワ 1 っ - りイ 1 37 UNIX MAGAZINE 1999.7

5. UNIX MAGAZINE 1999年7月号

ク 3 PC UN Ⅸのべンチマー 表 18 BYTE UNIX benchmark 測定結果の比較 (DMA 、最ヒ有 ) OS FreeBSD 1.3 Linux 2.2.5 テストマシン M2 MI/M2 M 1 M2 算術寅算 30.3 1.56 (f 部青度 : カ小翫点 ) Dhrystone2 システムコーノレ (execl) ファイルコピー ( 30 秒 ) パイプ・コンテキス トスイッチ 負荷性能 ( 8 同時実 ☆ 30.8 行 ) 6 結果の合言 6 結果の勺 NetBSD 1.4 M1/M2 M2 MI/M2 M 1 ☆ 47.4 ☆ 30.4 1.50 1.56 27.5 41.3 ☆ 38.2 ☆ 40.4 37.1 1.08 40.1 1.09 36.5 39.6 1.06 螫寅算 ) 0.87 0.74 ☆ 332.5 0.62 ☆ 247.5 131.3 113.6 224.3 139.7 1.01 48.9 ☆ 57.4 ☆ 58.0 0.99 ☆ 95.1 1.09 ☆ 95.4 ☆ 34.7 30.5 49.4 0.99 41.4 40.8 1.13 21.4 24.1 1.00 41.1 44.9 0.92 30.5 28.1 0.88 0.96 32.2 407.6 67.9 299.4 49.9 ☆は頁目中の直 302.6 50.4 511.7 584.2 0.84 ☆ 85.3 ☆ 97.4 343.9 57.3 1.01 0.88 BYTEbench 測定結果の比較 図 9 さのファイルで I / O 性能を言則しても、メモリにアクセ スするだけなので正しく調則できていない可能性もある。 250 ! 200 150 100 50 0 0 レ今 . , 計測対象ごとの性能分析 ( 総合へンチマーク ) 次に、総合べンチマークである、 ・ BYTE UNIX benchmark ・ SPEC CPU95 について考察する。 BYTE UNIX benchmark BYTE UNIX benchmark (BYTEbench) は、さま ざまな機能に対するべンチマークをまとめた総合的べンチ マークである。 BYTEbench は古くからあり、容易に入 手できるためひろく利用されている。 しかし、複数のハードウェア・プラットホーム、または OS 間の上交に適しているとはいえない。 BYTEbench の引則で得られる孑票の公表に関する規定がなく、 ・コンパイル日 ) 最商化の有無 ・ DMA 転送、マウント・オプションなどディスクアク セスに関する設定 によって言 - 則される性育旨標が大きく異なることや、ダイ ジェスト的に提示される結果の代表的な 6 つの値とその し 00 ~ 225 心を 勺値だけが、独立した意味をもってしまうことカ墹題と なっている。 しかし、 BYTEbench か不正確なべンチマークである というわけではない。測定竟などのイ寸加情報も含めて公 開されるなら、上交対象として十分未があるし、べンチ マークとしてもそれぞれの値をⅡ刳未すれは市意な情報を得 ることができる。 今回の上交では、 図 1 に示すコンパイル・オプションあり ・ IDE ハードディスク、 DMA 中幻医あり、マウント・オ 31 UNIX MAGAZINE 1999.7

6. UNIX MAGAZINE 1999年7月号

ク 3 表 2 SPEC CPU95 言わ曩竟 テストマシン 1 (Celeron 400 ) PC UN Ⅸのヘンチマー テストマシン 2 (K6-III 400 ) C コンパイラ Fortran コンノ、イラ 最商化フラグ (base) 去も商化フラグ (peak) ファイルシステム・オプション トウェアイ霧一覧を表 2 に示す。 egcs (1.1.2-RELEASE) g77 ( egcs ー 2.91.66 ) -O —pentiumpro -mcpt.l¯ iozone と Bonnie は、ファイルシステム性能を含む I/O 性能を言 t 測するべンチマーク・ソフトウェアである。 UNIX 系 OS は多様なファイルシステムをサポートし ており、それらにえられるオプションもそれぞれ異なる 場合がある。そこで、ファイルシステムの性能については、 1. システムのオ剽售斗に態 2. 性能改善が可能なら、その設定を利用した状態 3. 我々か基本伏態として定義した状態 ( 非 DMA 、同期書 込み ) の 3 不鶤頁を想定して調則した。 OS のなかには一ト記のうち 2 つを同時に満たす設定もある ( たとえば 1 と 2 が同一な 場合など ) ため、上記の 3 通りを個別に調則するのではな く、複数の場合を則することにしている。 ファイルシステム・オプションとしては、 ・同期 (sync) ・非同期 (async) の差を必須の言頓目とし、ほかにも、 ・ softupdates の有無 (FreeBSD 3.1 のみ ) ・ noatime オフション などを含めた組合で言れ則した。 また、 OS がディスクの DMA 転送をサポートしてい る場合は、 DMA 中幻医の有無それぞれについて各オプショ ンごとに言則している。 ヘンチマーク測定 (NetBSD 1.4 ) 測定条件 最初に、 NetBSD 1.4 でべンチマークを計測する際に 考慮した特有の条件についてまとめておく。 UNIX MAGAZINE 1999.7 -03 数値演算ライプラリ 13 2. /etc/mk. conf に 1387-LIBM = 1 を定義する 1. NetBSD 1.4 のライプラリ関連のソースコードを取得 ておこう。 れている数値演算ライプラリのインストール去を説明し 参考までに、 lntel の i387 FPU 命令を利用して言当さ フォルト時の性能は前者を使ったものによる。 の双方を用いて引側することにした。 NetBSD 1.4 のデ ・ FPU 命令を利用する libm ・ FPU 命令を利用しない libm 難となることも考慮し、 が、今回はほかの部分を上交する場合に間題の切分けカ咽 このような差異を OS の性質として扱うことも考えた 準の libm となっている。 では、それぞれ可能なかぎり FPU 命令を使う libm カ鰾 今回ク寺集で扱っている FreeBSD 3.1 と Linux 2.2.5 ような libm を構築することもできる。 の機種依存命令をもつソースコードも含まれており、その ・ DEC vax 示叩ー卩 ・ Motorola mC68881 FPU 命令 ・ lntel i387 FPU 命令 そのため NetBSD 1.4 には、 るため、性能は低くなる。 側で実行される命令列によってエミュレーションしてい FPU で実行される浮動小数点演算命令を用いすに CPU C 言語で記述されたライプラリは、汎用性は高いが、 に C 言語で言当されたものを利用している。 演算ライプラリ (libm. *) か特定の機種に依存しないよう そのためか、デフォルト状態の NetBSD 1.4 は、数値 非依存の部分に紐じ、の配慮がなされている。 法でサポートするために、アーキテクチャに対する依存、 NetBSD では、さまざまなアーキテクチャを同一の方

7. UNIX MAGAZINE 1999年7月号

特集 表 5 lmbench 測定結果 テストマシン 1 (Celeron 400 ) 、テストマシン 2 (K6-III 400 ) NetBSD 1.4 (DMA 無 ) NetBSD 1.4 (DMA 有 ) テストマシン 1 テストマシン 2 テストマシン 1 テストマシン 2 プロセス生成のレイテンシ ( ″小さいはうがよい 空プロセス 0.9 0.8 0.9 0.8 空 I/O 3.3 3.3 3.3 3.3 13 stat 13 14 13 open 、 close 17 16 18 16 select 0.03K 0.05K 0.03K 0.05K シグナル定 2.0 1.7 2.0 1.6 シグナル取得 3 3 5 3 fork 0.9K 0.8K 0.9K 0.8K fork 、 exec 4K 3K 4K 3K sh の実行 6K 5K 6K 5K コンテキストスイッチ・レイテンシ ( 秒 ) 小さいほうがよい OK サイズの 2 プロセス間 9 12 10 12 16K サイズの 2 プロセス間 21 16 21 15 64K サイズの 2 プロセス間 123 40 139 40 16K サイズの 8 プロセス間 56 24 53 24 64K サイズの 8 プロセス間 208 159 148 194 16K サイズの 16 プロセス間 69 42 65 38 64K サイズの 16 プロセス間 207 177 179 193 ローカル通信のレイテンシ ( ″ 小さいはうがよい パイフ。通信 30 AF-UNIX 31 UDP 57 TCP 68 TCPåZ:*Æ 446 ファイルと VM のレイテンシ ( 椡 小さいはうがよい OKB のファイル作成 255 OKB のファイル削除 101 IOKB のファイルイ乍成 490 IOKB のファイル削除 265 Mmap のレイテンシ 22533 Prot Fault NA Page Fault 6.3K ローカル通信のバンド幅 (MB/ 秒 ) 大きいほうがよい パイフ。通信 108 AF-UNIX 109 TCP 33 ファイル再ムみ 43 Mmap 再囚。み 294 Bcopy(libc) 102 Bcopy(hand) 100 Mem read 294 write 135 メモリのレイテンシ (n 小さいはうがよい LI キャッシュ L2 キャッシュ メインメモリ 00 っ 0 - り - り 1 上 一り - り 0 一一 0 1 っワを 0 - り 4 0 一 -0 2 ワひっ 0 4 4 259 105 467 280 25403 2 5.2K 100 101 54 43 230 68 68 230 106 214 76 386 214 24975 NA 6.6K 97 95 57 47 229 68 68 229 106 192 77 411 239 22238 NA 6.7K 110 95 35 48 316 104 103 316 140 7 123 198 4 37 267 7 111 185 4 58 266 18 UNIX MAGAZINE 1999.7

8. UNIX MAGAZINE 1999年7月号

3 PC UN Ⅸのヘンチマーク 表 22 lmbench の測定結果 ( 訂正版 ) ( テストマシン 1 : Celeron 400 、テストマシン 2 : K6-III 400 ) FreeBSD 3.1 (DMA 無 ) FreeBSD 3.1 (DMA 有 ) Linux 2.2.5 テスト テスト テスト テスト テスト テスト ~ シ ' ン 1 ~ シ - ン 2 - ? シ・ン 1 ー ? シ・ン 2 ~ シン 1 ・ - ~ シーン 2 プロセス生成のレイテンシ秒 ) 小さいはうがよい 空フ。ロセス 0.9 0.8 空 I/O 3.7 4.0 14 15 stat open 、 Close 19 19 select 0.05K 0.06K シグナノレ光正 1.9 1.8 シグナル取得 5 5 fork 0.4K 0.3K fork 、 exec 2K 2K sh の実行 5K 4K コンテキストスイッチ・レイテンシ ( 秒 ) 小さいはうがよい OK サイズの 2 プロセス間 4 5 16K サイズの 2 プロセス間 14 8 64K サイズの 2 プロセス間 79 28 16K サイズの 8 プロセス間 42 12 64K サイズの 8 プロセス間 180 131 16K サイズの 16 プロセス間 27 64 64K サイズの 16 プロセス間 182 163 ローカル通信のレイテンシ ( ″椡 小さいはうがよい パイフ。通信 17 AF-UNIX 20 UDP 45 TCP 51 TCP 接続 153 ファイルと VM のレイテンシ 小さいはうがよい ( ″秒 ) OKB のファイル作成 302 OKB のファイル削除 77 IOKB のファイルイ乍成 495 IOKB のファイル削除 364 Mmap のレイテンシ 1632 Prot Fault 2 Page Fault 0. OK ローカル通信のバンド幅 (MB/F}) 大きいはうがよい パイフ。通信 261 AF-UNIX 160 TCP 52 ファイル明もムみ 132 Mmap 再言もムみ 315 Bcopy(libc) 107 Bcopy(hand) 108 Mem read 315 Mem write 140 (n 秒 ) 小さいほうがよい メモリのレイテンシ LI キャッシュ 7 L2 キャッシュ 27 メインメモリ 187 0.5 0.8 7 8 0.05K 1.4 2 0.2K 2K 8K 0.8 1.1 6 8 0.04K 1.6 3 0.3K 3K 10K 0.8 3.7 15 19 0.06K 1.8 5 0.3K 2K 4K 5 8 28 12 131 27 163 9 ー 5 0 5 4 5 5 0 ー 6 0 11 っ 4 一 1 一ト -4 一 8 一り一ト - り 1 一りつ 4 - り 0 っ 0 1 ・ 4 5 0 一 9 一り一 8 っ 4 -1 0 っ 1 イ 1 1 一 1 0- つ 4 1 4 一 1 8 一つ 0 - り冖ー 一 8 - り 5 -4 11 っ 4 つけ 1 一 8 一りつ 8 一 ー冖ー一り 11 つけ 11 11 -4 り - り 18 21 33 37 NA 386 177 675 440 1752 1 0. OK 451 196 94 125 230 71 71 230 106 18 21 33 37 NA 386 177 671 440 1732 1 0. OK 451 196 94 125 230 71 71 230 106 12 1 28 2 15387 1 1.2K 308 196 74 153 232 71 72 232 108 15 1 29 2 14710 1 0.8K 349 72 42 185 321 104 104 321 133 312 77 510 309 1633 2 0. OK 254 120 37 130 313 108 111 315 137 7 27 187 4 37 266 4 37 265 7 100 183 5 37 266 39 UNIX MAGAZINE 1999.7

9. UNIX MAGAZINE 1999年7月号

特集 ・演算の種類による得手不得手がある ( 特殊な拡張命令 MMX や 3D Now! などによって性能か劇的に改善さ れる場合もあるだろう ) ・問題の切分けができていないので、他の部分の鞍か支 酉勺になっている などの理由が考えられる。いすれにせよ、さらに田な分 析が必要であろう。 36 OS に依存する性能分析 FreeBSD 3.1 や NetBSD 1.4 において async オプショ タ更辛刑も非同期更新をデフォルトとして採用している。 や NetBSD 1.4 とは異なり、 Linux 2.2.5 ではメタデー 要求と同期的にメタデータ更新をおこなう FreeBSD 3.1 同期書込みをおこなっている効果と考えられる。書込み 書込み性能が優れた値を示している。これは Linux が非 デフォルト時の言 - li 則結果を上師交すると、 Linux 2.2.5 の の各 OS の上交グラフ、表 21 はそれぞれの言岩直である。 を使用 ) ・ DMA アクセスを無効に設定したとき (PIO モード 4 ・ DMA アクセスを有効に設定したとき 図 11 、図 12 はそれぞ デフォルトを採用する。 ・ファイルシステムのマウント・オプションは各 OS の ・テストマシン 1 の IDE ディスクを対象とする。 測する。 OS 間の I/O 性能を上交するために、下記の条件で計 ディスク I/O 性能 に着目することて表面化する恥頁について述べる。 ・ OS 自体に特有な要素 最後に、 といった視点でべンチマーク結果を分析してきた。 ・ハードウェアに依存した部分 ・べンチマークに特有な部分 ・測頁目別 これまで、 ンを採用した場合の性能は、デフォルト状態での性能と大 差ない。 Linux のファイルシステムは非い期書込みを前提 としたチューニングか施されていることか想像される。 メモリアクセス性能 メモリ性能に関係するのは、 ・メモリ操作ライプラリ イ瓦想記慮管理システム である。 メモリ操作ライプラリク生は、 ・ libc bcopy : lat-bw-mem bcopy でみることかできる。 各 OS の libc bcopy のグラフ (FreeBSD 3.1 : 6 月号 の図 8 、 Linux 2.2.5 : 6 月号の図 9 、 NetBSD 1.4 : 図 8 ) を上交すると、 FreeBSD 3.1 では転送量 4 ~ 8KB でもっ ともバンド幅か大きく、 NetBSD 1.4 は中幻逶量 256 バイ ト—IMB ではかの OS よりバンド幅が大きいが、 IMB 以 E では急に小さくなる。 イ瓦想記應管理システムの実装の違いにより誌則結果が異 なるべンチマークには、 ・ latß ( ファイルの生成 / 削除 / 作成のレイテンシ ) ・ lat-mmap (mmap のレイテンシ ) ・ lat-sig prot lat-sig ( フ。ロテクション・フォーノレト ) ・ lat-pagefault ( ページフォールト ) がある。 mmap のレイテンシなどをみると、 Linux 2.2.5 での 言れ則値か高い。 FreeBSD 3.1 や NetBSD 1.4 などの仮 想記億管理と、かなり性格が異なっていると擒則できる。 ライプラリ SPEC CPU95 の言測では、コンパイラ、ハードウェ ア構成を同一にしたので、 OS 間での性能格差はライプラ リの差と考えられる。 SPECmark の値から、 ・整新寅性能 (SPECint95) ではほとんど差がない ・ NetBSD 1.4 の SPECfp95 の値のみがきわめて低い ことが分かる。 UNIX MAGAZINE 1999.7

10. UNIX MAGAZINE 1999年7月号

特集 表 14 テストマシンのキャッシュい テストマシン 2 テストマシン 1 サイズ LI L2 L3 LI L2 L3 LI (CeIeron) DIB (K6-111) チッフ上 16KBI 十 16KBD 128KB 400MHz 400MHz 重丿胙周波数 L2 L3 ラインサイズ 書込み方式 チッフ上 ポード上 32KBI 十 32KBD 256KB 2MB 400MHz 400MHz 100MHz ライトバック 32 バイト ライトアロケート ライトバック 7 を利用した CPU) では、 CPU チッフ上に 1 次キャッ シュおよび 2 次キャッシュを統合しているため同様の効 果か得られる。キャッシュの容量を考慮に入オせしば、キャ ッシュの多い K6 ー III のはうか有利という見方もできるが、 正確に評価するためにはその他の周辺オとあわせて検討 する必要がある。 キャッシュ里機構 キャッシュの容量だけではなく、キャッシュに関する 言も異なっている。キャッシュ更新単位のキャッシュ ラインが 32 バイト長であるのは共通である。 K6-III では、セクタ管理方式と呼ばれる機構を用いて いる。この方式では、 2 つのキャッシュを束ね、 1 つのタ グ番号を付けて管理する。 1 セクタは 64 バイト構成供 通のタグ番号をもった 2 本の 32 バイト・キャッシュラ イン ) となる。 あるキャッシュラインがキャッシュミスとなり、タグ 番号も一致していなかった場合には、セクタ全体の置換え がおこなわれる。キャッシュミスしたキャッシュライン の 32 バイトだけでなく、その連続した領域をもう 1 つの キャッシュラインにプリフェッチする。 Celeron では、メモリオーダー・バッフアと呼ばれる オ冓があり、 2 次キャッシュまたはメモリへのメモリアク セス要求に対する Out-of-Order 処理をおこなっている。 この処理により、メモリアクセス要求のプロックをイ瓊咸さ せ、メモリアクセスのスルーブット向上を図っている。 キャッシュの機育計交を表 14 に示す。 24 チップセット 去も丘の PC アーキテクチャでは、基本的な周辺デバイ スを 1 ~ 2 個の VLSI チップに統合したものを、、チッフ セット " と呼んでいる。チップセットには、 PC を構成す る際に必な下記のデバイスのほかに、周辺 I/O (IrDA など ) を含む場合が多い。 ・メモリ・コントローラ ・ EIDE コントローラ ・ PCI プリッジ ・ RTC (Real-Time Clock) ・ DMA コントローラ ・キーポード・コントローラ ・ PS / 2 マウス・コントローラ ・ 2 次キャッシュ・コントローラ ・低消費電力 CMOS SRAM チッフ。セットは、 CPU からメモリに保存されるデータ、 あるいは CPU から I / O テンヾイスに渡されるデータを橋 渡しする彳難リをもっており、システムの中心としてデータ のやりとりのすべてにかかわっている。したがって、その 特は、 CPU からのメモリアクセスに関する性能やディ スクに対しての DMA 転送などに景グする。 チップセットの持生として、パフォーマンスに大きく などがある。 ・ AGP バスの重川周波数 ・メインメモリへのアクセス・タイミング ・サポートするメモリ方式 ・メインメモリバスの重川周波数 ・システム・べースクロック 景グする項目には、 用したチップセットの上師交を表 15 に示す。 うかで、システム性能が大きく変わることもある。今回使 アロケート機能をチップセット側でサポートしているかど たとえは、 K6-III のキャッシュ更新方式であるライト UNIX MAGAZINE 1999.7 ースクロックは、 テストマシン 2 : 100MHz テストマシン 1 : 66MHz システムのべ