<CHAPTER ID="Tuning">
<!-- <TITLE>Tuning Mosix</TITLE> -->
<TITLE>Mosix のチューニング</TITLE>
<!-- <sect1><title>Introduction</title> -->
<sect1><title>はじめに</title>
<para>
<!--
Some of the parts below are still from the old Mosix Howto, as time passes 
these parts will get replaced by relevant openMosix parts, however some things 
are still the same , but your mileage may vary. </para>
-->
これからの説明には、以前の Mosix HOWTO からの引用部分がまだ含まれています。
時と共に openMosix の該当部分へと置き換わっていきますが、それでもまだ同じ部分
があるでしょう。場合によりけりですが。
</para>
</sect1>
<!-- <sect1><title>Creating a "Master" node</title> -->
<sect1><title>「マスター」ノードの作成</title>
<!--
<para>Although openMosix architcture does not require a master node as such, 
you might want to have a head node from where you launch processes, this might 
be a multihomed node from where users log in to your cluster.
-->
<para>openMosix のアーキテクチャではマスターノードを必要としません。しかし
プロセスを立ち上げるところとして、ヘッドノードがあった方が良いかもしれません
し、ユーザがクラスタにログインするところとして、マルチホームノードが必要に
なるかもしれません。

<!--
You want to configure your machine to make  processes
migrate away</para>
-->
プロセスがマイグレートするようにマシンを設定する必要があります。
</para>
<para>
<!--
You have to trick the node in thinking it is the slowest node around and 
it'd better migrate all it's processes to the faster nodes.
-->
ノードをだまして、周りのノードの中で最も遅いノードと思わせなければいけません。
そうすると、すべてのプロセスはより速いノードにマイグレートすることになります。

</para><para>
<!--
You will have to make it "slow" with :
-->
「遅く」するには下記のようにします。
<programlisting>
mosctl setspeed [n]
</programlisting>

<!--
where n should be much lower than the speed of the 
other nodes Processes will move/migrate away fast.
You can get the speed of a node with :
-->
n は他のノードの速度よりも小さくします。そうするとプロセスが素早く移動もしくは
マイグレートします。
ノードの速度は下記でわかります。
<programlisting>
mosctl getspeed
</programlisting>
</para>
</sect1>










<!--
<SECT1><TITLE>Optimizing Mosix </TITLE>
-->
<SECT1><TITLE>Mosix の最適化</TITLE>
<!--
<PARA>Editorial Comment: To be checked with openMosix versions
-->
<PARA>編集上のコメント： openMosix のバージョンをチェックすること。

</PARA>
<PARA>
<!--
Login a normal terminal as root. Type
-->
root で普通の端末からログインしてください。まず、

 
<PROGRAMLISTING>
       setpe -r 
</PROGRAMLISTING>
と入力してください。
 

     <!--
		 which, if everything went right, will give you a listing of your
     /etc/mosix.map. If things did not go right, try 
		 -->
		 これでうまくいけば、/etc/mosix.map がリストされます。うまく行かないなら、

 
<PROGRAMLISTING>
        setpe -w -f /etc/mosix.map 
</PROGRAMLISTING>
      としてみてください。
 

     <!--
		 to set up your node. 
		 -->
		 ノードを設定するには、
     
     <!--
		 Then, type 
		 -->
		 次のように入力してください。

  
<PROGRAMLISTING>
       cat /proc/$$/lock
</PROGRAMLISTING>
 

     <!--
		 to see if your child processes are locked in your mode (1) or can
     migrate (0). If for some reason you find your processes are locked, 
     you can change this with 
		 -->
		 これで子プロセスがノードでロックされているのか(1)、マイグレートしている
     のか(0)ががわかります。何らかの理由でプロセスがロックされていれば、
     下記のようにして変更できます。

<PROGRAMLISTING>
        echo 0 > /proc/$$/lock
</PROGRAMLISTING>

     <!--
		 until you fix the problem. 
		 -->
		 問題を解決するまで。

   <!--
	 Repeat the whole configuration scheme for a second computer. 
	 -->
	 設定方法はすべて復唱して、次のコンピュータに備えてください。

   <!--
	 The programs tune_kernel and prep_tune that Mosix uses to calibrate
   the individual nodes do not work with the SuSE distribution.
   However, you can fake it. First, bring the computer you want to
   tune and another computer with Mosix installed down to single user  
   mode by typing
	 -->
   プログラムの tune_kernel と prep_tune は Mosix が個々のノードを調整する
	 のに使いますが、SuSE ディストリビューションでは動作しません。
	 しかしどうにかできます。まずチューニングしたいコンピュータと Mosix が
	 インストールしてある別のコンピュータをシングルユーザモードに落とします。
	 下記を root になって入力してください。

<PROGRAMLISTING>
        init 1
</PROGRAMLISTING>

     <!--
		 as root. All other computers on the network should be shutdown if
     possible. 
		 -->
		 ネットワーク上にあるその他すべてのコンピュータをできるだけ落として
		 ください。

   <!--
	 On both machines, run the following commands:
	 -->
	 どちらのマシンでも下記のコマンドを動かしてください。

<PROGRAMLISTING>
        /etc/init.d/network start
        /etc/init.d/mosix start
        echo 1 > /proc/mosix/admin/quiet
</PROGRAMLISTING>

     <!--
		 This fakes prep_tune and the first parts of tune_kernel. Note that
     if you have a laptop with a pcmcia network card, you will have to 
     run
		 -->
		 こうすると prep_tune と tune_kernel の最初の部分をだませます。PCMCIA 
		 タイプのネットワークカードが付いたラップトップなら、下記のようにしな
		 ければいけません。

<PROGRAMLISTING>
        /etc/init.d/pcmcia start
</PROGRAMLISTING>

     <!--
		 instead of "/etc/init.d/network start". 
		 -->
		 これは「/etc/init.d/network start」の代わりです。

     <!--
		 On the computer you want to tune, run tune_kernel and follow 
     instructions. Depending on your machines, this can take a while -
     if you have a dog, this might be the time to go on that long, long
     walk you've always promised him.
		 -->
		 チューニングしたいコンピュータ上で、tune_kernel を動かして下記の
		 手続きを踏んでください。マシンにもよりますが、これには時間がかかります。
		 犬を飼っているなら、いつもの長い長い散歩と同じぐらいかかります。

     <!--
		 tune_kernel will create a program called "pg" in /root for testing
     reasons. Ignore it. 
		 -->
     tune_kernel は「pg」というテスト目的のプログラムを /root に作成します。
		 これは無視してください。

     <!--
		 After tuning is over, copy the contents of /tmp/overheads to the
     file /etc/overheads (and/or recompile the kernel). 
		 -->
		 チューニングが終わったら、/tmp/overheads の中身を /etc/overheads に
		 コピーしてください(カーネルを再構築してください)。

   <!--
	 Repeat the tuning procedure for each computer. Reboot, enjoy Mosix, 
and
     don't forget to brag to your friends about your new cluster.
	 -->
	 各コンピュータでチューニングの手続きを繰り返してください。
	 そしてリブートして、Mosix を使ってください。
	 友人に新しいクラスタを自慢することもお忘れなく。


</PARA>
</SECT1>

<!-- 原文でコメントアウトしてあるので訳出しません。 -->
<!--
<SECT1><TITLE>Where to place your files</TITLE>
<PARA>

</PARA>
</SECT1>
-->
<!--
<SECT1><TITLE>Channel Bonding Made Easy</TITLE>
-->
<SECT1><TITLE>Channel Bonding を簡単に</TITLE>
<PARA>
Contributed by  Evan Hisey
</PaRA>
<PARA>
<!--
Channel bonding is actually horrible easy. This may explain the lack of 
documentation on this subject A bonded network appears as a normal 
network to the applications. All machines on a subnet must be either bonded the same way. Bonded and non-bonded machine really don't talk well 
to each other.
-->
Channel bonding はきわめて簡単です。この課題についてのドキュメントがない
ことがそれを表しています。bonded network はアプリケーションにとっては通常
のネットワークに見えます。サブネット上のマシンすべては、同じ手段で統合されて
いなければいけません。Bonded and non-bonded なマシンは、実際はお互いうまく
通信ができません。
</PARA>
<PARA>

<!--
Channel bonding needs at least to physical sub-nets but can have 
more(Currently I have a tri-bonded cluster). To enable bonding you need to 
either compile in to the kernel or as a module (bonding.o) the Channel Bonding kernel code, as of 2.4.x is it a standard option of the kernel. 
The NIC's are setup as normal with except that you only us 'ifconfig' to initialize the first card of the bond. 'ifenslave' is used to initialize 
the remaining cards in the bonded connection. 'ifenslave' can be locate in the linux/Documentation/network/ directory. It will need to be 
compiled as it is a .c file. The basic format for use is 
<programlisting><![CDATA[
ifenslave <master> <slave1> <slave2>
]]></programlisting> ...'. Channel bonded networks can connect to 
standard networks via a router or bridge that supports channel bonding( I just use an extra NIC and port-forwarding in the head node).
-->
Channel bonding は物理的なサブネットを最低限必要としますが、さらに増やすこと
が可能です(私は tri-bonded クラスタを持っています)。bonding を有効にするには
Channel Bonding のコードをカーネルに組み込むもしくはモジュール(bonding.o)に
する必要があります。2.4.x ではカーネルの標準オプションになっています。
ネットワークカードの設定は普通にしてかまいませんが、「ifconfig」を使って bond 
する最初のカードを初期化する必要があります。「ifenslave」は bonded 接続を行う
残りのカードを初期化するコマンドです。「ifenslave」は、
linux/Documentation/network/ ディレクトリにあります。これは .c ファイルとして
コンパイルする必要があります。基本的な使用方法は、
<programlisting><![CDATA[
ifenslave <master> <slave1> <slave2>
]]></programlisting> ... です。Channel bonded ネットワークは、channel bonding 
をサポートしているルータもしくはブリッジ経由で通常のネットワークに接続できます
(私の場合はヘッドノードで追加のネットワークカードとポートフォワーディングを
使っています)。
</PARA>
</SECT1>

<sect1><title>Updatedb</title>
<para>
<!--
Updatedb in combination with mfs can cause some issues, you might want to add 
/mfs to the PRUNEFPATHS or mfs to the PRUNEFS in your /etc/updatedb.conf 
to disable updatedb from indexing this mountpoints.
-->
updatedb と mfs を組み合わせると問題が発生する恐れがあります。したがって、
PRUNEFPATHS に /mfs を追加するか、/etc/updatedb.conf の PRUNEFS に mfs を
追加して、updatedb がこのマウントポイントの索引付けをしないようにして
ください。

</para>
</sect1>

<!-- <sect1><title>openMosix and FireWire</title> -->
<sect1><title>openMosix と FireWire</title>
<para>
<!--
openMosix does gain performance by using another type of network device, 
as described within the paper about <ulink 
url="http://howto.ipng.be/FireWireClustering/"><citetitle>
 openMosix and FireWire</citetitle>
-->
openMosix は他のタイプのネットワークデバイスを使って性能を稼いでいます。
<ulink url="http://howto.ipng.be/FireWireClustering/"><citetitle>
 openMosix and FireWire</citetitle>
に説明があります。
</ulink>
</para>
</sect1>
</CHAPTER>


