メモリ - みる会図書館


検索対象: UNIX MAGAZINE 2000年9月号
31件見つかりました。

1. UNIX MAGAZINE 2000年9月号

の一部の旧いバージョンは、 Daemons & Dragons— この部分の解釈を誤ってい スにまとめるとしたら、「メモリはいい、多いはどいい」 システム管理者としての長年の経験を 1 行アドバイ メモリ、ページンク、スワップ たくないかもしれない。 もしつは正常で、パフォーマンスを改善する必要はまっ めなければならない。その結果によっては、高い数値で ない。ロードアベレージが高ければ、その原因を突き止 優れた指標だが、それ以外の情報も検討しなければなら 価する唯一の手段として用いるべきではない。平均値は ロードアベレージは、システム・パフォーマンスを評 らない点に注意しよう。 のイベントなので、つねにユーサーの役に立っとはかぎ だし、この数値は特定の目的で計算されたカーネル内部 負荷を調べるユーティリティが複数用意されている。た を左右する。ロードアベレージはなにかと便利なので、 取り込まれ、スケジューリンクのプロセスの優先順位 テムの負荷は、プロセスの CPU 使用率を計算する際に ュール・アルゴリズム用として計算される。現在のシス ロードアベレージは本来、 UNIX のプロセススケジ は CPU が使用されていなくても急騰する。 バーがダウンすれば、クライアントのロードアベレージ 期的なディスク待機とみなされる。そのため、 NFS サー して NFS がある。 NFS の読出しを待っプロセスは、短 I/O は去麒月的な待機とはみなされないが、重要な例外と げることはないだろう。はとんどの場合、ネットワーク mit 、 Z-modem など ) も、ロードアベレージを押し上 読出しと書込みに時間がかかるプロセス (uucico 、 ker- ロードアベレージに含まれない。シリアル回線を介した い。したがって、ユーサーからの入力を待つプロセスは デバイスからの入力待ちは去麒月的な待機とはみなされな かるプロセスは、ロードアベレージに含められる。 tty ある。ローカルディスクの読出しと書込みに時間がか ドアベレージが予想を上回る数値に歪められる可能性が 短期的な待機状態にあるプロセスまで含めると、ロー く準備か整うプロセスである。 CPU のスケジュールに加えるにはまだ早いが、まもな 呼ばれる状態にあるプロセスもカウントする。これは、 る ) 。しかし、システムは、短期的なディスク待機 " と 134 となる。メモリが桁外れに高価な時代もあったが、事情 が一変した現在、システムにメモリをつぎこまない理由 はない。大量のメモリはどのシステムの性能も向上させ る。 これには単純明快な理由がある。仮想メモリである。 物理メモリを使いはたすと、システムはほとんど使用さ れていないメモリページをディスクに移し始める。 れにより物理メモリの空き領域を増やし、物理メモリが すぐに必要なプロセスに割り当てることができる。ただ し、ディスクに移したページが必要になったら、はかの ページが身代わりとなってメモリが空けられる。物理メ モリの容量が不十分なシステムでは、 I/O の実行とペ ージフォールトの処理に時間がかかる。メモリ不足は、 CPU とディスクの使用効率を低下させる。 イ反想メモリシステムのノヾフォーマンスは、 vmstat コ マンドか sar コマンドを使って簡単に調べられる。はと んどの UNIX システムはどちらかのコマンドを備えて いるし、どのシステムにも仮想メモリの統引・値を報告す るコマンドがあるはすだ。 vmstat コマンドは、イ反想メモリのノヾフォーマンスに 影響をおよばしうる糸 - 「値を表示する。ただし、すべて の数値が仮想メモリシステムに直接関連づけられるわけ ではない。おかしな数値が出力されても、メモリ関連の 問題とはかぎらないのである。仮想メモリシステムの実 装は、 UNIX の種類によって大きく異なる。実装の違 いは、 vmstat か報告する数値とその解釈に反映される。 こでは各数値の詳細については説明しないが、重要な ものだけ紹介しておく。 sar コマンドを使えば各種の役立つ数値が得られる。 このコマンドの出力は指定するオプションによって変わ る。上の 2 つのコマンドの出力をなんとか関連づけてみ よう。結果は UNIX の種類によって異なるはすだ。経 験上、 Solaris を中心とした説明になることをお断わり しておく。 vmstat の出力の 1 行目は、システムのプート時か ら蓄積された糸値である。これらの大半は役に立たな い。重要なのはごく短時間の傾向である。これを知るに は、定期的に報告を出力するように、コマンド行て報告 間隔を ( 秒単位で ) 指定する。そうすれは、連続して出 力される行は指定した時間における正確なオペレーショ UNIX MAGAZINE 2000.9

2. UNIX MAGAZINE 2000年9月号

Daemons & Dragons— ン数を示す。 を実行するとプート時を起点とする統計値が最初に出力 されるはずだ。これらの数値は無視して、短い間隔で報 memory のカラム ( または、、 sar ー r " の出力 ) は、スワ 告を繰り返すようにするほうがよい。 ッフ。領域と物理メモリの空き容量を示す ( 、、 free" という ラベルが付いている ) 。あらかじめ設定された物理メモ これらのコマンドの出力はいたって単純で、システム リの最少残量 ( 通常は IKB 前後 ) に達すると、システ の各デバイスへの読取りと書込み時の転送量が表示され ムは物理領域を増やすためにメモリページをディスクに る。ディスクのスルーブットの限界が分かっているなら、 移し始める。システムの稼重加間に関係なく空きメモリ これらの数値からディスクの使用率を割り出せる。しか はこの値に近づくが、それ自体はまったく正常である。 し、通常はもっと簡単な指標が使える。サービス時間 UNIX では必要に迫られるまでページを物理メモリか ( たいてい、、 svc-t" か、、 serv" と表示される ) と待ち時間 ら移動しないからだ。ただし、スワップ容量の不足はメ をみるのである。サーピス時間は、リクエストを処理す モリ割当て要求の失敗につながる。これはなんとしても るための平均所要時間である (I/O キューでの待ち時間 避けたい。 を含む ) 。この数値が 50 ミリ秒以上の場合、ディスク がリクエストでいつばいになっている可能生がある。待 べージングの糸値 (sar-p) は、 1 秒あたりのページ ち時間は、リクエストが処理されるまでの待機時間の合 イン / ページアウトを KB 単位で表示したものである。 計である。待ち時間が長い場合もディスクの飽和状態を vmstat では pi" と、 p 。 " て示される。これにより、シ ステムで実行されているべージング量を感覚的に擱むこ 示す。 とができる。高い数値はよくないが、それでおしまいで 想定される状況として、何台かのディスクのサービ はない。 SoIaris では、、短期的なメモリ不足 " と呼ばれる ス時間と待機の割合か高い数値を示しているが、各ディ ものが報告される。これは vmstat の出力の、、 de" に該 スクの転送率は比較的低い場合がある。言い換えれば、 当し、メモリの使用傾向を示す。高い数値は、メモリが I/O リクエストの処理に時間がかかっているのに、と 急速に消費されていることを示す。 1 つまたは複数のプ くににしいディスクはみあたらないという状況だ。これ ロセスが、高い割合でメモリを割り当てているというこ はおそらく、コントローラのいすれかがふさがっている とである。 ことを示す。サービス時間の数値か高いディスクを調べ て、それらが同しコントローラに接続されているかどう もっとも重要な数値は、べージデーモンのスキャンレ かを石忍しよう。 ート、すなわち、、 sr " である。この数値はページデーモン の作業量を示す。物理メモリが少なくなると、ページデ ネットワーク I / O ーモンはべージの再生利用を始める。丘参照されてい ネットワークの輻輳がシステム・ノヾフォーマンスの ないページを調べ、それらのページアウトのスケジュー 問題として顕在化することもある。これは、間題の原因 リングをおこなうのである。べージデーモンの作業量が がシステムになくても起こりうる。ネットワークで問題 多いようなら、メモリを増設する必要がある。一般に が発生すると、ネットワーク・アプリケーションやネ 毎秒 200 ページを超える場合は問題とみなされる。 ットワークを介したディスクアクセス (AFS や DFS 、 ディスク I / O NFS など ) に支障が生しる。この場合、システムの統 計値を調べてもポトルネックを示すものはないにもかか ディスク操作の監視は、ほとんどの UNIX システム わらす、依然としてパフォーマンスが低下しているよう で簡単におこなえる。難しいのは、ディスク I / 0 カ蒴加 に感しられるだろう。 した原因を特定することである。現在では、 I/O の糸兤 値が得られる各種のコマンドか揃っている。 SystemV ネットワークのパフォーマンス・チューニングについ から派生したシステムでは、一般に、、 sar—d" で I/O の て述べると長くなるので、こでは簡単なチェック項目 をいくつか紹介しておく。まず、疑わしいシステム上で 統計値を取得できる。ほかのコマンドとしては、 iostat netstat-i" を実行し、ネットワーク・インターフェイ と dkstat がある。 vmstat と同様に、 iostat と dkstat 135 UNIX MAGAZINE 2000.9

3. UNIX MAGAZINE 2000年9月号

連載 BSD をハックする一① DMA では、データ転送のあいだだけパスが占有され、 CPU がメモリにアクセスできなくなります。ただし、転 送の前後でバスマスターが CPU と DMA コントローラ ( あるいはディスク・インターフェイス ) と切り替わる処 理にも時間がかかります。たとえは、 1 セクタ ( 512 バイ ト ) のデータを転送する場合、現在の典型的な PC では 32 ビット ( 4 バイト ) すつ中幻します。したがって、 128 のメモリサイクル十切替えロスだけの時間を要することに なります。 DMA にはいくつかのモードがあり、使われる中幻モー ドによって効率が異なります。 イ氏速機器に対する D A では、 1 メモリサイクル ( 1 バ イトか 2 バイト、あるいは 4 バイト ) ごとにバスマスター が切り替わる ( バスの利用権を CPU から奪い、 1 サイク ル転送してから返す ) ことがあります。この場合、 2 ~ 3 倍 程度のオーバーヘッドが生しると考えられます。 ハードディスクのような高速 ( 中幻医か始まるまでの待ち 時間はあるが、ひとたひ転送が始まると高速 ) 機器では、 複数回の転送を一気におこないます。このような場合は効 率ががり、メモリサイクルのオーバーヘッドはあまり目 立たないと考えられます。 プログラム転送の場合は、たとえはデータの読出しでは 以下の操作を繰り返します。 1. I/O ポートからデータを読み込む 2. バッフアメモリにデータを書き込む 3. バッフアメモリを指すポインタを 1 進める 4. 転送カウンタを 1 減らす 5. 転送カウンタが 0 になったかどうか調べる 個々作は、そ巣作をおこなう命令コードの言もムみ ( 主記慮あるいはキャッシュから ) とメモリアクセス ( デー タの言もムみあるいは書込み ) からなります。 このとおりだと、プログラム中幻幻ま DMA の 10 倍 ( 命 令フェッチで 5 回アクセス、データで 5 回アクセス ) 遅 いように思えますが、現代の CPU はパイプライン、キャ ッシュやスーパースケーラといったオ冓をもっているので なんともいえません。また、頻繁にアクセスする変数への アクセスはコンパイラの最適化によってレジスタのアクセ スに変えられてしまうので、ポインタ変数やカウンタに関 連したメモリアクセスは生しないかもしれません。 UNIX MAGAZINE 2000.9 また、入出力ポートは I / O 空間 ( たとえは、 ISA バス では約 8MHz クロック ) 上にあります。したがって、主 記へのアクセスの何倍も ( もしかすると 10 倍くらい ) 遅いと考えられます。一方、入出力ポートが PCI バス上 にある場合は、 PCI バスのクロックは 33MHz ( 現在の PC の一般的なメモリクロックは 66MHz か 100MHz です。高速なものでは 133 、 IHz ) であるうえに、バス調 停のオーバーヘッドもあるので、やはり主記慮へのアクセ スの何倍も遅いと考えられます。 PCI バスの転送能力は 132MB/s ですが、これはあくまでもバースト転送をおこ なったときの最大値てす。 i386 では、メモリのプロック転送はリピート命令の使 用により命令コードフェッチのオーバーヘッドか軽減され るため、 I/O レジスタのアクセスタイムの遅さが生能に大 きく景グ響すると予想されます。 UNIX のファイル I / 0 ーイ殳ューザーの権限では、ノ、一ドディスクを茁妾読み書 きすることはできません。そこで、ファイルの読み書きに よってハードディスクの読み書きを発生させることしかで きないということになります。 ファイル I/O とその性能に関していくっか UNIX 特 有の性質があります。 もっとも大きな特徴が、バッフア・キャッシュの存在で す。主記慮の一にがファイルシステム I/O のためのキャ ッシュ領域となっており、ユーサープロセスのファイル I / O はすべてバッフア・キャッシュを対象におこなわれ ます。 去も丘の UNIX の多くはバッフア・キャッシュとイ反想記 憶の統合が進められており 2 、ユーザープロセスの利用す るメモリ空間とファイルシステム・バッフアが同しメモ リフ。ールから割り当てられたりしています。ただし、ファ イルの読み書きデータがかならす力ーネル中のバッフアを 経由するという特生は変わっていません 3 そして、バッフア・キャッシュとユーザープロセス空間 とのあいだのデータコピーでは、プログラムによるプロッ 2 残念ながら NetBSD ではまだ統合されていません。 3 商用 UNIX のなかにはメモリマッブド I/O を翁ⅷ勺に採り入れたもの などいろいろなバリエーションがあり -- 一概にはいえないのてすが、それに は目をつぶることにします。 73

4. UNIX MAGAZINE 2000年9月号

連載 / BSD をハックする一⑩ 図 3 DMA によるファイル車医のテータ糸 CPU コア キャッシュ ユーザー プロセス ディスクレ F / ヾッフア・ キャッシュ メモリ たく関係ないプロセスのシステム時間としてチャージされ てしまうこともあります。 判別法 て表されたデータの流れのぶんだけ、性能力觝下すると考 ューサー・プログラムか 1 司時にあった場合、この図の泉 ファイルの読込み時に、主記匱を頻繁にアクセスする クセスは、図 3 のようなデータの流れとなります。 DMA を用いたディスク上のファイルシステムへのア ました。 だけ生能力イ氏下するかを調べ川まよいのではないかと考え の 2 つを同時に動かして、前者単独のときとくらべてどれ うフログラム ・ CPU ははとんど使わないがファイルアクセスはおこな ・ CPU を激しく利用するプログラム オ L ば区別できそうです。そこで、 ファイル I / O に CPU をどれだけ使っているかをヾ をしているかを判別する手段を考えます。 をおこなうディスク上に置かれているか、プログラム中幻医 以 E の考察をもとに、あるファイルシステムが DMA えられます。 UNIX MAGAZINE 2000.9 す。 もうすこし詳しくみてゆくと、次のような手順になりま を作って性能を言れ則します。 1. メモリアクセスを繰り返しおこなうテストプログラム A ディスクドライプ 益己意の容量の範囲内でキャッシュに収まらない大量の データを扱うことによって、メモリバスのバンド幅転 送能力 ) か計測できます。この性能を MMB/s としま 2. バッフア・キャッシュに収まらない大きなファイルを 作り、言もムみ性能を調べるためのフログラム B を作成 します。 3. A と B を同時に動かします。このとき、 A の実行優先 順位を低くしておきます。ます、 B を繰り返し実行して おいて A を 1 回実行します。 A の所要時間から、ディ スク I/O 中の ( フログラム A にとっての ) メモリバン ド幅 M'MB/s カ球められます。 4. 逆に A を繰り返し実行しながら B を実行して B の実 彳芋間を計ると、 B の調則時間からディスクの読出し速 度 DMB/s も分かります。 こで M ー M ′は、ディスクからのデータ言も囚みによっ て阻害されたメモリのバンド幅です。これは、ディスクア クセスに関連した CPU の動きと DMA ( もしおこなっ ているなら ) が CPU を押しのけてメモリアクセスをおこ なったことと、バッフア・キャッシュからユーサープロ セスにデータをコピーする手間の和と考えられます。 M ーアのうち、バッフア・キャッシュとユーサーデ ータ空間のあいだのデータコピーで説明がつくのは D x 2MB/s ( バッフア・キャッシュの言もムみに DMB/s 、ユー サープロセス空間への書込みに DMB/s) です。したがっ て、残りの M ー M' ー 2D がどの程度大きいかか判断基 準となります。 75

5. UNIX MAGAZINE 2000年9月号

~ 1 100 % COMPAT 旧 LE Silicon Graphics 信頼と品質に自信の 拡張メモリー総合メーカー グリーンハウス ! ! SPARC station20 用 SIJN microsystems WO ⅸ S ね tion 用増設メモリ GH*IJ* 六量構 モー : ル 128MB ( 6 枚組 ) SiIiconGraphics 320 , 320i MEM00004 GH-SGVW128M 256MB ( 6 枚組 ) 6 枚組 SiIiconGraphics 540 M EM00002 GH-SGVW256M 512MB ( 6 枚組 ) GH-SGVW512M M EM00003 64MB (32MBX2 GH-SG02/64M MEM -64-02 02 128MB ( 64MBX2 ) 2 枚 1 組 MEM ・ 128-02 GH-SG02/128M 256MB ( 128MBX2) M EM ・ 256-02 GH-SG02/256M 64MB(32MBX2) HU-MEM64 GH-SGOC164M 128MB(64MBX2 2 枚 1 組 GH-SGOC/128M HU-MEM128 256MB ( 128MBX2 ) GH-SGOC/256M HU-M EM256 64MB ( 16MBX4) lndy,lndigo,lndig02 HU-M64A GH-SGlD64M 4 枚 1 組 128MB ( 32MBX4 ) GH-SGlD128M H し M128A 56MB MBX リ - M256 H-S 225 冓 32MB(16MBX2) H4- N32 64MB (32MBX2 H4- N64 128MB ( 64MBX2 ) H4-N 128 UItra/Ente rise 用増設メモリ 六量構 モデル 64MB(32MBX2) Ultra 1 X7002A 128MB (64MBX2 Enterprise 1 X7003 256MB ( 128MBX2 ) X7004A 64MB ( 16MBX4) Ultra 2 n/a 128MB ( 32MBX4 ) Enterprise 250 , 450 n/a 256MB (64MBX4 n/a 64MB ( 32M BX2) U ⅳ a30 X7002A 28MB (64MBX2) U a60 X7003A 256MB ( 128MBX2 ) X7004A 64MB (32MBX2 X7030A Ultra5 M0dd270 128MB ( 64MBX2 ) Ultra10 Mode 旧 00 X7031 A 256MB ( 128MBX2 ) X7032 128MB ( 64MBX2 ) Ultra5 Mode1333, 360 X7037A 256MB ( 128MBX2 ) Ultral 0 Mode 旧 33 , 360 , 440 X7038A 512MB ( 256MBX2 ) X7039A 256MB (32MBX8 X7022A Enterprise 3000 3500 1GB(128MBX8) X7023A Ente rise 4X00 , 5X00 , 6X00 SPARC システム用増設メモリ 容量構 モデル 16MB (4MBX4 SPARC station 2 32MB(4MBX8) SPARC station 4 , 5 8MB 16MB 16MB SPARC station 20 32MB 64M GH ー GH-SPU/64M GH-SPU/128 G H-SPU/256M GH-SPU2/64M 4 枚 1 組 GH-SPU2/128M GH-SPU2/256M GH-SPU30/64M 4 枚 1 組 GH-SPU30/128M GH-SPU301256M 2 枚 1 組 GH-SPU5/64M または GH-SPU5/128M 4 枚 1 組 GH- PU5 / 256M 2 枚 1 組 GH-SPU5/64MA または GH-SPU5/128MA 4 枚 1 組 GH-SPU5/256MA GH-SUE/256M 8 枚 1 組 GH-SUE/IGB メーカー正型番 GH 型番 GH-SS1/16M XI 1 H Y W 4 枚 1 組 GH-SS1/32M n/a GH-SP5/64M X408M 1 枚単位 X132M GH-SP5/128M X116P GH-SP20/16M 1 枚単位 X132P GH-SP20/32M 1 2 OCTANE Se Ⅳ e 「用増設メモリ モデル 0 印 G 200 0 印 GW2000 ONYX2 H 型 G H-SGOR/32M 2 枚 1 組 GH-SGOR/64M GH-SGOR/128M HEWLETT PACKARD Wo 水 Station 用増設メモリ KAYAKXA6/450, 7 / 500 , 7 / 550 32MB KAYAK XA-s 7 / 550 , 7 / 550X 64M B KAYAK XU 6 / 450X , 7 / 500X 28M 日 NetSe Ⅳ e 「用増設メモリ モ→ル NetServer E40 , E45 , E50 32MB 64MB 128MB NetServer LC3 P Ⅲ 300 64MB NetServer LC3 P Ⅲ 400 , 450 128MB NetServer LH3 P 旧 350 400 256MB NetServe 「 LH3 「 P 旧 400 , 450 H P9000Se Ⅳ e 「用増設メモリ 容量構成 ) メーカー純正型 GH 型番 モデノ 128MB ( 64MBX2 ) GH-JKC/128 HP9000 J, K, C Class A3027A 256MB ( 128MBX2 A3483A GH-JKC/256 32MB(16MBX2) GH -715 / 32 HP9000 712 , 715 , 725 A2829A MB (32MBX2 A2827A メーカー正墅 GH 型 D6521A GH-HK100132EC 1 枚単位 GH-HK100/64EC D6522A D6523A GH-HKIOO/128E GHFlj 番 GH-NET32M/E 2 枚 1 組 GH-NET64M/E GH-NET128MlE GH-NET64M/LC GH-NET128M/LC GH-NET256M/LC D4891 A D4892 D4890A D6097A D6098A D6099A COMPA Q (DEC) Wo ⅸ Station 用増設メモリ モーよレ メーカー正型 GH 型 谷 Personal Worksation i + シトス・ 82MB SN-MSPOI-JB GH-AWlP/64M 1 枚単位 ( 266i + 300i + , 333i + ) SN-MSPOI-JC GH-AWlP/128M 64MB 128MB SN-MSPOI -JD GH-AWlP/256M 32MB(16MBX2) Personal Worksation i シリ - ス・ SN-PCCAM-EB GH -32N32W60 64MB (32MBX2). 2 枚 1 組 266i , 300i ) SN-PCCAM-EC GH -32N64M / 60 128MB ( 64MBX2 ) SN-PCCAM-ED GH -32N128M / 60 Proliant 用増設メモリ 容量 ( 構 型番 モー : ル GH-PLI 00 / 64M Proliant 800 6 / 400 64MB 313614-291 GH - PL100 / 128M P 「 oliant 1600 6 / 350 , 400 , 450 128MB 313615-291 1 枚単位 GH-PLI 00 / 256M Proliant 1600R 6 / 350 , , 450 256MB 313616-291 Proliant 1850R 6 / 400 450 P 「 oliant 3000 / 3000R 6 / 450 ・その他 IBM RS / 6 側 0 シリーズ、富士通・ NEC ・ AppIe 各種デスクトップ / ノート用メモリ、 Lan 製品・ケープル等も取り扱ってございます。 弊社メモリーは全て永久保証がついております 正常な使用で問題が出た場合、全て無償交換 することができます。 * お支払いは、官公庁、大学及び放送局など 所定の様式で承ります。尚、国庫金、県費 などでのお支払いもご利用できます。 * 記載の社名、商品名は各社の商標または 登録商標です。 * 製品の仕様は予告なしに変更する場合が ありますのでご了承ください。 1 枚単位 増設単 2 枚 1 組 2 枚 1 組 旧 M RS / 6000 用増設メモリ モデル名 容量構 RS / 6000 43P ( 7043-140 ) 32MB 64MB RS / 6000 HI 0 , F40 128MB メーた純正型番 - 増設単位 GH 型番 GH-PS43P/32M 4113 1 枚単位 4114 GH-PS43P/64M 4115 GH-PS43P/128M 当 ( H OUSE 株式会社グリーンハウス 本社 / 〒 150-0013 東京都渋谷区恵比寿 1 -20-22 三富ビル 4F TEL03-5421-2255 ( 代 ) FAX. 03-5421-2266 ホームページアドレス http://www.green-house.co.jp 資料請求 NO. 017 永久 保証 渡辺

6. UNIX MAGAZINE 2000年9月号

図 1 TransMagic リソースエデイタなどを 1 つの大きなフログラムで扱 う、いわゆる、、統合開発工竟 " カえてきています。組 フ日ルのカートリ 0 ヘル第印 込みシステムの開発でも、このような環境を利用するこ とが多いようです。たしかに、ビジュアルな画面配置や 町 0- 第 -2121 , 」を背 0 磚 コ ) 浦 -01-21 21 1 い第 ーー可 0 ー浦 -07-21 21 : 52 「、 ' 、 をトを 0 テパッグには統合システムがイ叫リな場面もあります。し 第 0 ー第一 21 22 : 07 4 お 1 0 ] - 第 -21 21 甌リ 一 O -01-21 22 ー : を かし、このようなシステムでは専用のエデイタを使わね 1 工 - 第 -21 22 寘 1.437 ユロ - い -21 22 ・ 07 ばならなかったり、 Make 用 e を自由に書けなかったり 2 物 町「ト 0 21 22 引 7 と、柔軟生に欠けるにもかかわらす使い方が複雑で困る ことがよくあります。 WonderWitch では、伝勺なプログラミング開発手 法に即して、普通のエデイタで編集したプログラムを コンパイル、リンクして転送するというガ去でプログラ ム開発をおこないます。 カートリッジ ~ コ / 、づロヤラムエリア : 582 をⅡ -0 お陬 195 ) : ( ト -14 第 ) ー - 1303 580 ト { お -21 12 } { めー 14 15 11. 凹 7 師 4 0 〕 - -18 140 423 瓢ー第田 220 1220 0 : ト働 -15 ⅱ 0 ユ } -0 た幻 21 1 : 曩 釭 35 } { め -1 日 140 615 4 ) ) : H -12 154 3332 を 夏 { め -14 0 す 0 当 ] こヤ囀 b ” 1 0 ッド第℃ 丿ロトコルロ をⅡ丨物きこい・′ヒ 1 い・を ! ド 4 4 3 コト 3 35 ? 14 3 : を : 川 5 肛 14 お 4 200 ・ライプラリ : プロセス管理、標準入出力、 MML (Music Macro Language) によるサウンド制御などのライプ ラリが用意されています。 ・アプリケーション : ファイル操作、通信、プログラム WonderSwan と WonderWitch のイ策は以下のよう 起動などをおこなうための「 Meg 」というアプリケー になっています。 ションが用意されています。 、 VonderSwan のハードウェア 開発竟 ・ 80186 命令互換 CPU ( クロック 3MHz) WonderWitch のプログラムは、 Windows 98 / 2000 ・ 2.49 インチ FSTN 反射型液品 ( 224 x 144 ッ ト、 ド の DOS プロンプトで動く LSI C または Turbo C で開 8 階調 ) 発します。これらは MS ー DOS の匆期のころによく使われ ・シリアル通信ポート ( 9 , 600 / 38 , 400bps ) たかしのコンノヾイラですが、 8086 / 80186 が PC でほ ・操作ボタン ( 12 個 ) とんど使われなくなった現在では、 LSI C ー 86 のスモール ・キャラクタとスプライトによる描画 モデル ( 試食版 ) や Turbo C は無償で使えるようになっ ・ 4 チャンネル音源 ています。 ・外形寸去 : 7.43 x 12.1 x 2.43cm ( 単 3 電池使用時 ) これらは MS-DOS 用のフログラムですが、 Cygwin 重量 : 110g 環境で動かせは、 UNIX 上のプログラム開発とはとんど 同しように作業を進めることができます。さらに、 Linux ・ WonderWitch 専用カートリッジ の DOS 工ミュレータ d 。 semu などでも動くと思います。 カートリッジには 512KB フラッシュメモリ、 256KB LSI C または Turbo C で開発した WonderWitch プ スタティック・メモリ (64KB x 4 バンク ) 、バックアッフ 電池が入っています。メモリには、 WonderWitch の中 ログラムは、形式を変更したあと、 WonderWitch に付 核である FreyaBIOS と FreyaOS 、アプリケーション、 属の TransMagic という Windows フログラムでカート メモリ・ファイルシステムなどが収められています。 リッジに転送します ( 図 1 ) 。 シェノレ ・ FreyaBIOS : 画面、キー、サウンド、シリアル通信、タ WonderSwan に WonderWitch のカートリッジを挿 システム / バンク制御など、ハードウェアに近 して電源を入れると、、、シェル " の Meg か動き、ファイ いレベルの処理をおこないます。 ル操作や通信、プログラム起動など作ができるように ・ FreyaOS : プロセスやメモリ上のファイルシステム、ラ なります。 イプラリなどを管理します。 仕様 168 UNIX MAGAZINE 2000.9

7. UNIX MAGAZINE 2000年9月号

ノ ( ( リ′作 05P ( べースワークステーション デスクトップシリース JU5 シリース JUIO シリース J い / 360 J い 0 / 4 和 を 00000000000 を 00000000000 UltraSPARC-II i 360MHz UltraSPARC-II i 440MHz 外部キャッシュ 256KB 外部キャッシュ 2MB JU60 シリーズ JU80 シリース JU60, / お 60 〃 4 側 / 7450 U80 / 1 0 / 2450 / 4450 ・ UltraSPARC-II ・ UltraSPARC-II 450MHz ・ 1CPU—4CPU 360 / 400 / 450MHz ・外部キャッシュ 2MB / 4MB ・ 4GB ( 最大 ) メモリ搭載 ・外部キャッシュ 4MB ℃ PU JU60, / 2360 / 24 側 / 2450 ・ UltraSPARC-II 360 / 400 / 450MHzX2 ・外部キャッシュ 2MB / 4MB クループサーハシリース 25 のリーズ 45 のリース ・ UltraSPARC-II 360 / 400MHz ・ 1 CPU—2CPU ・ 2GB ( 最大 ) メモリ搭載 ・ 108GB ( 最大 ) 内蔵ティスク ストレーシンリューション をハードディスクストレージ ・ 9GB—•50GB ・ディスクタワー ・ 9GB ~ 216GB をテープストレージ ・ DAT/8mm/DLT 第 H. ー 0 ストレージ ・ 36GB ~ 2.6TB OAPAN COMPUTER CO 日 P. 2CPU Model オ = プグ = イト ハイエンドサーバー 4 4CPU Model aSPARC- Ⅱ ( 360 / 400 / 450MHz ) ミッドレンジサーバー ・ UltraSPARC-II 360 / 400 / 450MHz ・ 1CPIß4CPU ・ 4GB ( 最大 ) メモリ搭載 ・ 364GB ( 最大 ) 内蔵ディスク 0 キーボード / ビデオ・スイッチ / S シリーズ ・日本語 / 英語 キーボード対応 ロ O O JVS シリーズ導入前 JVS シリーズ導入後 ※すべての SPARC 商標は、米国 SPARC lnternationa い nc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。 ※ Solaris は、米国 Sun Microsystems, lnc. の登録商標です。※製品名等の固有名詞は各メーカーの登録商標または商標です。 ※製品の仕様及び写真内容は予告なく変更することがありますのでご了承ください。 資料請求 No. 003

8. UNIX MAGAZINE 2000年9月号

I/O ポートの言もムみは益己慮より遅いのと、データ転送 のはかにファイルシステムのオーバーヘッドもありますか ら、合計 2 倍のオ→ヾーヘッドがあるかもしれません。 そこで、 M ー M' ー 2D が小さい値 ( D 未満 ~ D の 2 イ部呈度 ) なら DMA を使っている、大きな値なら PIO だ と考えられるのではないでしようか。 ただし、プログラム A がメモリバスを 100 % 馬町力でき なければ DMA がおこなわれてもプログラム A の釧乍を 妨げないということですから、結果的に言れ則された転送コ ストが見かけ上 D を大幅に下回る値になることもありえ ます。 PIO 転送は ( シングル CPU のマシンであるかぎり ) 、 他のユーサープロセスの動きを妨げすにおこなうことはで きませんから、 CPU 消費はそれなりに大きな値になるは 実際のマシンが前節て考えたような挙動を示すかどうか 調べてみました。 調査に用いたのは K6-2 (300MHz) の AT 互換機で す。主記憶は 256MB (IOOMHz SDRAM) で、 Net- BSD-I. 4 をインストールしてあります。テストに用いた ディスクは、 Seagate の「 ST313032 」です。誤差が生 しるのを防ぐために、 NetBSD 自体は SCSI ディスクに インストールしています。テストプログラム以外が IDE ディスクにアクセスすることはありません。 プログラム A に相当するテストプログラムは、 bcopy で IMB のメモリ領域を別の IMB の領域にコピーする操 作を 1 , 000 回繰り返すというものです。 char dst [ 1024 * 1024 ] ; unsigned int xxjunk [ 23 ] ; char src [ 1024 * 1024 ] ; test-bcopy() 連載 BSD をハックする一① 検証 int i ; fO て ( i = 0 ; i く 1000 ; i + + ) bcopy(src ,dst, sizeof (dst)) ; このプログラムを単独て動作させると、実行時間は 8.3 秒でした。 120MB/s でデータを読んで書いているわけで すから、 240MB/s のメモリバンド幅か親測されたことに 76 なります。 バッフアサイズを 2MB に増やしたところ、急激に悪化 して所要日が 40 秒になりました。 2MBx 1 , 000 / 40 x = 102.4MB / s となります。このマザーポードは 2MB 2 の L2 キャッシュか載っているので、こちらの 102MB / s のはうがメインメモリの実力と考えられます。 次に、大きさが 128MB のファイルの言もムみテストを おこないました。所要時間は 11 秒で、約 12MB/s の速 度です。 bcopy によるテストプログラムとファイルの言もムみを 同時におこなうと、所要時間は 67 秒に増えました。約 62MB/s ということになります。 102 ー 62 ー 12 x 2 = 16MB/s < 2D ( = 24MB/s) なので、 DMA を使っていると結論できます。実際に、 dmesg て市忍すると、このディスクは Ultra DMA モー ド 2 と表示されました。 さてこれだけでは、この E-IDE ディスクのアクセス性 能がたまたま判男坊試に適合しただけかもしれません。対 照実験として、 SCSI ディスクの場合と DMA を禁止し た E-IDE ディスクを調べてみます。 /var/tmp に置いたデータを読みながらプログラム A を動かしてみました。 /var/tmp は Fast Wide の Sea- gate 「 Barracuda ( 7 , 200rpm ) 」上に作られたファイル システムです。 A の実行所要時間は 47 秒で、そのとき のファイルの言ムみ速度は約 5.5MB/s でした。つまり、 2MBx 1 , 000X2 / 47 = 87.2 B / s となります。 102 ー 87.2 ー 5.5 x 2 = 3.8MB/s < D ( = 5.5 B / s ) やはり想定したとおりの DMA の景グか表れています。 最後に、カーネルを明冓築して PCI 接続の IDE イン ターフェイスの DMA 機能を禁止してみます。すると、 PIO モード 4 となりました。これで同じテストをしてみ ると、 bcopy プログラムがいつまでたっても終りません。 20 丘くかかってしまいました。 また、ファイルの言もムみ速度も 5.5MB/s 程度に低下し ました。計算するとメモリのバンド幅は約 3 MB/s 程度の 低い中幻幻重度です。このことは CPU 能力のほば 100 % が ファイル読出しに費やされていることを夋します。 102 ー 3 ー 11 = 88MB/s 》 2D ( = 11MB/s) UNIX MAGAZINE 2000.9

9. UNIX MAGAZINE 2000年9月号

e WS ・ 9 / 2000 ■ SGI グラフィックスを強化したハイエンド WS 日本 SGI (Tel 0120 ー 161086 ) は、 ロット ( オプション・モジュールで拡張可 能 ) 。内蔵 HD (Ultra SCSI) は最大 3 台 、、 Silicon Graphics Octane2 ピジュアル ワークステーションクの販売を開始した。 グラフィックスは新開発の、、 IRIX 用 最大 1 , 920X 1 , 200 (60Hz) の表示をサポ UNIX WS の最上位機種で、 CPU VPro グラフィックス〃。メモリ 32MB の は 0.18 ″ m プロセス、 4way スーノヾース V6 と、 128MB の V8 がある。 OpenGL 外形寸法 (HxWxD) は 41.3X27.9x 1.2 ( コアと ARB イメージング拡張機能 ) ケーラの R12000A (360MHz/400MHz) 33.7cm 。 xl ~ 2 。 2 次キャッシュは 2MB 。主記慮 のハードウェア・アクセラレーションが可 価格は、 V6 グラフィックスを使用の 能。テクスチャメモリⅣ 6 / V8 ) は最大 8 (SDRAM) は 256MB—8GB0 メモリ帯 「 Octane2 V6 」が 295 万 7 , 000 円 (R 域蝠は 1.0GB/so I/O 帯域幅は 1.6GB / MB/104MB0 96bit のアキュムレーショ 12000A (360MHz) x 1 ) から、 V8 グラフ s x 6 ポート ( クロスパー・スイッチ ) 。う ン・フィールドをもつ。 RGBA に各 12bit ィックスを使用の「 Octane2 V8 」が 422 ち 4 ポートはグラフィックス /SCSI コン の割当てが可能。ピクセル単位のノーマ 万 5 , 000 円 ( R12000A ( 400 Hz ) x 1 ) か トローラ / 高速ネットワーク用の XIO シ ル・インターポレーションによる鏡面シ ら。いすれも、主記慮が 256MB 、 HD が ステム。 PCI (32bit/64bit) は標準で 3 ス ェーディングなどをハードウェアで処理。 9GB で、 21inch ディスプレイ付き。 ■旧 M 並列サーバー用 16way SMP ノード ( メモリスロット x 4 ) あたり最大 64GB0 日本アイ・ピー・エム (Tel 0120 ー 041992 ) は、 UNIX 並列サーバー「 RS/ 内蔵 HD は 2 台、 PCI スロット x 5 、拡 張 I/O スロット (PCI スロット x 8 、 HD 6000 SP 375MHz POWER3 SMP ハ スロット X4 ) 接続ポート x60 米 Lawrence イ・ノード」の販売を開始した。 Livermore 国立研究所に設置されたスー CPU は POWER3—II (375MHz) で、 パーコンピュータ、、 ASC IWhite" で使わ 4 / 8 / 12 / 16way の SMP 構成が可能。最大 れている。 OS は AIX 4.3.3 以 - ヒ。 4way の従来モデルとくらべ、 OLTP 性能 価格は 3 , 658 万円から。 (ROLTP) は約 4 倍。主記憶は 1 ノード 片方向 500MB / s 、双方向 1GB/s のノ ード間通信欟冓「 SP スイッチー 2 」も販売 する。価格は 1 , 440 万円から。出荷は 10 月 27 日。 ■ SGI コンホーネント型の NUMA サーバー ◆ C—brick (CPU モジュール ) 日本 SGI (Tel 0120 ー 161086 ) は、 cc 4 つの CPU(MIPS の R シリーズ ) と最 NUMA アーキテクチャの UNIX サー 大 8GB のメモリから構成。 l—brick など 、、 SGI Origin 3000 シリーズクの販 との接続用の Xtown2 コネクタ ( 片方向 売を開始した。 1.2GB / s ) 、他の C—brick 、 R—brick と接 コンポーネント ( プリック ) を組み合わ Fibre Channel HD 、 CD—ROM ドラ 続する NUMAIink コネクタ ( 片方向 1.6 イプ、 PCI スロット ( ホットプラグ可能 ) せて NUMA システムを構成する、、 SGI GB/s) をもつ。 x5 、各種 I/F (10Base T/100Base TX 、 NUMAflex" 技術を使用。各プリックの ◆ l—brick ( 基本 I/O モジュール ) IEEE1394 、 USB) を備える。 Xtown2 コ 概要は以下のとおり。 UNIX MAGAZIN E 2000.9 1

10. UNIX MAGAZINE 2000年9月号

Daemons & Dragons スの情報を取得する。そして、 lerrs と Oerrs のカラム 低下しても、その時点の数値を基準値と上交すれは、間 を調べる。これらは入力工ラーと出力工ラーを示す。こ 題を突き止めることができるだろう。これらの数値に明 れらの値が大きければ悪い知らせだ ( 通常は 0 である ) 。 確な閾値はない。したがって、間題が発生する前に基準 次に、 Opkts と CoIIis の値を調べる。それぞれ、書込み 値を設定することが重要である。 に成功したバケット数とコリジョンが発生したバケット パフォーマンス・チューニングについては、いくつか 数である。 Collis/(Opkts 十 ColIis) という式を使ってコ の優れた文献か幸されている。チュ ニングをおこな リジョンの割合を計算してみよう。 Ethernet でのコリ う前に、 OS の仕組みをしつかりと理解しておくべきで ジョンは普通のことだが、数が多すぎればそうともいえ ある。 UN Ⅸの内部構造に関する優れたリファレンスも なくなる。コリジョン率は 10 % 以下か望ましく、 10 ~ 複数ある。トラブル・シューティングと同しく、視野を 20 % なら、、黄信号 " である。このようなネットワークで 狭めたり、結論を急いではならない。 は、パフォーマンスの低下はそれはど目立たないと思わ れるが、徹底した調査が必要だ。 20 % を超えるコリジョ UNIX システムに 15 年以取り組んでおり、インターネット ン率は、ネットワークがまさに崩壊の危機に瀕している 技術の研究でもそれに匹商 - る経験を積んでいる。 SAGE が発 ことを示す。 行する「 Short Topics in System Administration 」の糸扁集 者で、ジョージア州アルファレッタ市で Group Sys Consult- ポトルネックの解消 ing を経営している。 ポトルネックか特定されたら、それを取り除くかどう かは予算しだいである。優先順位を付けなければならな いとしたら、私ならまずメモリのポトルネックから手を つける。メモリ不足は I/O と CPU の能力の低下を招 くからである。メモリのポトルネックを解消するのは簡 単で、さらにメモリを購入すればよい。 CPU の処理能力カ觝いシステムの改善方法はいくつ かある。もっと高速なプロセッサにアップグレードした り、システムが対応していれはプロセッサを増設するの である。いくっかのプロセスをほかのシステムに移すと いう方法もある。 ディスク I / O の能力不足は、より高速なディスクに 取り換えるか、ディスクを増設することで解消できる。 ただし、注意が必要なのは、新たにコントローラがポト ルネックとならないようにすることである。 I/O のポト ルネックがネットワーク・ファイルサーバーにあるのな ら、アクセス頻度の高いノヾーティションをほかのファイ ルサーバーに移すことを検討してみよう。 まとめ ■ Willi am LeFebvre [ 参考文献 ] [ 1 ] Sun Microsystems, "Application Packaging Devel- oper's Guide ” S01aris 2.6 DeveIopet 、 B00 ん s , 1997 [ 2 ] P. Albitz and C. Liu, DNS 佖れ d B ール〃 37 、 d E 市 0 れ , O'Reilly & Associates, 1998 ( 邦訳 : 高田広章、小島育 夫監訳・小舘光正訳 tDNS & BIND 第 3 版』、オライ リー・ジャノヾン、 1999 年 ) [ 3 ] H. Eidnes, G. de Groot and P. Vixie, Classless / ル - ス〃 D 月 . 月 P. Deleg 観 7 も RFC2317 , March 1998 [ 4 ] Y. Rekhter, et al., スa市、 ess 員″ 0C0 0 れ for P ゼ e lnternets, RFC1918 , February 1996 [ 5 ] Adrian Cockcroft, S 社れ Perfonnance 0 れ d T 盟れ広 SPARC & Sol の、な , SunSoft Press, Prentice Hall 1995 ( 邦訳 : 日本サン・マイクロシステムズ監訳『 SPARC & Solaris ノヾフォーマンスチューニング』、アスキー、 1995 [ 6 ] SamueI J. LeffIer et al., The Design 0 れ d lmplemen- 0 れ可 the イ .3BSD UNIX 0 〃 erat 9 System, Ad- dison Wesley, 1989 ( 邦訳 : 中村明、相田仁、計宇 生、小池汎平共訳 CUNIX 4.3BSD の言 t と実装』、丸善、 1991 年 ) 「 Packages 」 「 Partial DNS Delegation 」 ノヾフォーマンス・チュー ニングのきわめて重要な要素 「 Measuring and Changing Systern Performance 」 の 1 つに、基準となるデータの収集がある。負荷が少な Performance Computing 1999 年 1 月号 ~ 3 月号より い状態におけるシステムの動作伏況を示す、信頼できる 数値を用意しておくべきである。パフォーマンスか突然 ◎ 1999 , Performance Computing (). S. A. ) 136 UNIX MAGAZINE 2000.9