CYTUNE(8) | Linux Programmer's Manual | CYTUNE(8) |
cytune - Cyclades ドライバーパラメータのチューニング
cytune [-q [-i interval]] ([-s value]|[-S value]) [-g|G] ([-t timeout]|[-T timeout]) tty [tty ...]
cytune は、Cyclades ドライバーの割り込み発生の閾値の表示と変更を行う。 Cyclades カード上の各シリアルラインは、入力データ用に 12 バイトの FIFO を持っている (出力用には、別の 12 バイトの FIFO を持っている)。 閾値には、割り込みを発生させるまで FIFO 中に蓄えるデータのバイト数を指定する。 Cyclades の tty がオープンされると、この閾値は、 以下のようにボーレートによって定められたデフォルト値に設定される:
50-4800 10
9600 8
19200 4
38400 2
57600-150000 1
閾値が低すぎると、割り込み回数が増大し、マシンの負荷が高くなるため、 システムの全体的なスループットが低下する。 閾値が高すぎると、FIFO バッファがオーバーフローしやすくなり、 データが失われることになる。 また、遅いマシンでは、割り込みの負荷に耐え切れないかも知れないため、 閾値を高めに調整する必要がある。
Cyclades ドライバーが、 ENABLE_MONITORING 付きでコンパイルされている場合には、cytune コマンドに -q オプションを指定して、モニタリング周期中に転送されたデータ数と モニタリング周期中の割り込み回数をレポートさせることができる。 また、FIFO の状態もレポートされる。 割り込み発生時の FIFO 中の最大データ数、FIFO 中のデータ数の瞬時値、 現在の FIFO 中のデータ数がレポートされる。 この出力は、次のようになる:
この結果をみると、このモニタリングサイクルの間、 max の値が決して上記の閾値 (threshold) の値を越えることがないため、 割り込みは常に所定の時間内に処理されていることがわかる。 この例を見るかぎりでは処理はうまく行なわれている。 より長い時間サンプリングしてみて大丈夫なようならば、この設定で問題ないだろう。 Cyclades のハードウェアは、DCE から DTE へのハードウェアフロー制御のための RS-232C の RTS ラインをサポートしているようには見えないので、 FIFO がオーバーランすると、データが失われてしまう。
問い合わせモードで起動すると、 cytune は、SIGINT で終了させるか、閾値を超えるか、 タイムアウトが発生するまでのサマリーを出力する。
応答性とスループットはトレードオフの関係にある。 Cyclades のカードは、高速時 (高速の接続で FIFO の閾値を小さくした時) には、 とても割り込み負荷が高くなる。 このため、システム上で他のタスクで使用できる CPU 時間が少なくなる。 一方、閾値を大きくすると、1 文字当たりの応答にかかる時間が増大する。 このことは、Cyclades のカードを使って SLIP 接続しているホストに対して ping(8) を実行してみればわかる。 SLIP を通常、 telnet(1) のような対話的な作業に使用する場合は、出来るだけ早いレスポンスを得るために、 閾値を低くしたくなる。 SLIP をファイル転送や WWW などに使用する場合は、 スループットに (悪) 影響が出ず、システムの負荷を抑えるために、 FIFO の設定を大きな値にする方が良い。 これとは別に、 -t あるいは -T オプションを使うと、cyclades がバッファをフラッシュするまでの待ち時間 を調整できる。単位は、5ms である。
Cyclades のポートにマウスをつないでいる場合は、閾値とタイムアウト値を 低い値にしたくなる。
同じポートの統計情報を取得するために、同時に 2 つの cytune を実行すると、 'ints', 'chars', 'max' の値はリセットされ、正しい結果を得ることができない。 cytune は、これを避けるべきだが、そうなっていない。
/dev/ttyC[0-8]
/dev/cubC[0-8]
4 Mar 1995 |