Jump to content 日本-日本語

製品 >  ソフトウェア >  HP- UX Developer Edge

HP-UX 11i 構成可能カーネル・パラメータ(HP-UX 11.0 用)

プロセス管理パラメータの概要
HP-UX/Integrityサーバー お問い合せ
コンテンツに進む

  • システム上のプロセス数およびユーザーあたりのプロセス数を管理して、システム・リソースがユーザー間で効果的に分散されるように維持し、システム全体の動作を最適な状態に保つ。
  • 同じ優先度または異なる優先度の互いに競合する複数のプロセスに対し、CPU時間を割り当てる。
  • プロセス間で仮想メモリを割り当てて、リソースを過度に消費するプロセスや暴走したプロセスから、システムやリソースが競合しているユーザーを保護する。

プロセス管理


プロセスに関する必要条件は、個々のシステムによって大きく異なります。例えば、CDE環境やMotif環境が稼動している平均的なワークステーションでは、1人のシステム・ユーザーをサポートするために、100以上のプロセスを同時に実行することがあります。一方、シンプルなASCIIユーザー端末が接続された大規模なマルチユーザー・システムの場合には、個々の端末で実行されるプロセスの数は2つまたは3つに過ぎなくても、端末の数は合計1000台にも達することがあります。この2つの対照的な例を見ても分かるように、カーネルによってシステム上のプロセスがどのように制限されるかは、システムの構成によって大きく異なります。
   
  システム・プロセスの管理に関する構成可能パラメータには、以下の2つがあります。

nproc
    システム全体で同時に実行するプロセスの最大許容数を定義します。この数には、他のシステムからremshなどのネットワーク・コマンドを通じて開始されたリモート実行プロセスも含まれます。
     
  maxuprc
    任意の1人のユーザーが同時に実行するプロセスの最大許容数を定義します。この数には、ログイン・シェル、ユーザー・インターフェイス・プロセス、実行中のプログラムと子プロセス、I/Oプロセスなどが含まれます。X-window、CDE、およびMotifでは、1人のユーザーが同じログイン名 (ユーザーID) を使って同時に複数のログインを行うことがあります。このような場合には、プロセスの所属先のプロセス・グループの違いにかかわらず、すべてのプロセスの個数が合算されます。プロセスが親プロセス・グループから切り離された場合、そのプロセスはカウントされなくなります (ライン・プリンタ・スプーラ・ジョブや特定の専用アプリケーションなど)。

nprocの値は、通常時の最大数のユーザーがログインしているときに、すべてのユーザーに対して十分な数のプロセスを提供できるように設定する必要があります。

maxuprcの値は、すべてのシステム・ユーザーの通常のニーズを満たすことができるように設定する必要があります。ただし、この値を大きく設定しすぎると、暴走したプログラムがあまりにも多数のプロセスを起動する可能性が生じ(そのため、他のユーザーが新しいプロセスを起動できなくなる)、また、システムを悪用するユーザーがいた場合に他のユーザーを保護できなくなるので注意が必要です。

カーネル・スレッド


複数のプロセッサーを備えた大規模なシステムでは、プロセスの一部を複数のスレッドに分割し、異なるプロセッサーを使って同時に実行することがあります。スレッド・プロセスによるシステム・リソースの消費は、以下の2つのカーネル・パラメータを使って管理できます。

max_thread_proc
    1つのプロセスが作成して同時に実行するスレッドの最大許容数を定義します。
     
  nkthread
    システム上に同時に存在するカーネル・スレッドの最大許容数を定義します。

CPU時間共有の管理


カーネルは、他のプロセスがCPU時間を要求していないかどうかを頻繁にチェックします。 CPU要求のチェックは、優先順位の高いプロセスから順に10ミリ秒おきに行われます。同じ優先順位レベルの複数のプロセスが同時にCPU時間を要求している場合は、1つのプロセスがCPUを排他的に使用しないように、CPU時間が複数のセグメントに「スライス化」され、総当たり方式でプロセスからプロセスに受け渡されます。

timeslice
    1つのプロセスがCPUを継続して使用する時間の最大許容値を設定します。この時間が経過すると、同じ優先順位の競合プロセスにCPU時間が渡されます。timesliceに0より大きい値を指定すると、その値に10ミリ秒を掛けた時間間隔でCPUアクセスのタイム・スライス割り当てが行われます。-1を指定すると、総当たり式のCPUスケジュールが無効になりますが、特別なシステム・ニーズがない限りこの設定を使用するのは避けてください。

メモリ割り当ての管理


PA-RISCハードウェアでは、最大で2 GBの仮想メモリを単一のプロセスに割り当てることができます。このメモリは、テキスト・スペース、データ・スペース、動的記憶スペース、およびその他の用途に予約される約200 MBのスペースに分割されます。テキスト・スペースにはプログラムが格納され、データ・スペースにはグローバル変数、静的変数、main()内で適用されるローカル変数、文字列などが格納されます。動的記憶スペースには、スタック、レジスタ、malloc()で割り当てられたスペースなどが含まれます。ただし、大半のプロセスでは2 GBものスペースが必要になることはなく、しかも、多くのシステムでは、実際にインストールされているディスク・スペースは2 GB以上です。
   
  プロセス・スペースの割り当てに対して保護制限を設定できるように、以下の構成可能カーネル・パラメータが用意されています。

maxtsiz
    テキスト・セグメント・スペースの最大許容サイズを設定します。このスペースには、プログラムのうち、不変の実行可能コード部分が格納されます (32ビット・プロセスの場合)。
 
  maxtsiz_64bit
    テキスト・セグメント・スペースの最大許容サイズを設定します。このスペースには、プログラムのうち、不変の実行可能コード部分が格納されます (64ビット・プロセスの場合)。
 
  maxdsiz
    静的変数や文字列のほか、sbrk()やmalloc()により割り当てられる動的なデータ・スペースが格納されるデータ記憶セグメント・スペースの最大許容サイズを設定します (32ビット・プロセスの場合)。
 
  maxdsiz_64bit
    静的変数や文字列のほか、sbrk()やmalloc()により割り当てられる動的なデータ・スペースが格納されるデータ記憶セグメント・スペースの最大許容サイズを設定します (64ビット・プロセスの場合)。
 
  maxssiz
    スタック・スペースに使用される動的記憶セグメント(DSS) スペースの最大許容サイズを設定します (32ビット・プロセスの場合)。
 
  maxssiz_64bit
    スタック・スペースに使用される動的記憶セグメント(DSS) スペースの最大許容サイズを設定します (64ビット・プロセスの場合)。

プロセス・スペースに関するニーズは、ユーザーごと、システムごとに千差万別です。したがって、どのシステムのどのユーザーに対してもテキスト・スペースとデータ・スペースを同じサイズに固定するのには無理があります。例えば、研究システムや開発システムの場合、テキスト・セグメントについてはごく標準的なスペースで十分でも、データ・セグメントについてはかなり大きなスペースを必要とするユーザーがいる一方で (例えば、サイズの小さいプログラムで非常に大きな配列を処理するユーザーなど)、データ・セグメントはほとんど必要としないが、プログラムを格納するためのテキスト・セグメントについては非常に大きなスペースを必要とするユーザーがいることがあります。
   
  一方、数百人のユーザーをサポートする運用システムの場合は、ユーザー1人あたりのデータ記憶に要するスペースはごく標準的なサイズでも、システム上のすべてのユーザーをサポートするためには膨大なスワップ・スペースが必要になることがあります。このような場合には、いずれかのユーザーのプロセスが誤動作したり、暴走して無限ループに入ったときでも、他のユーザーを保護できるように、スペースを比較的小さいサイズに制限するのが妥当です。

最適な制限の設定


スペースの制限は、システム上のすべてのユーザーの要求を満たすとともに、プログラムが暴走したときや、いずれかのユーザーが不適切な操作を行ったときに、すべてのユーザーを保護できるように最適な値に設定する必要があります (このためには、個々のユーザーのプログラム・ニーズを十二分に理解しなければなりません)。 maxtsiz、maxdsiz、およびmaxssizの各パラメータは、必要なスペースにアクセスしようとする個々のユーザーに対してアクセスを制限するための手段ではなく、あくまで、仮想メモリ・リソースがいずれかのプロセスやユーザーによって独占的に使用されるのを防止するための安全策として用意されています。このことを十分に認識した上で、スペースの制限を設定する必要があります。

通常、maxtsiz、maxdsiz、およびmaxssizの各パラメータは、それらの値の合計値が利用可能なスワップ・スペースを上回るように設定します。このような設定が妥当となる理由は、まず、大半のユーザー・プログラムが必要とするスペースの量は、これらのパラメータによる制限値よりもかなり小さくなるからです。さらに、比較的小さい値を設定すると、ユーザーに割り当てるスペースを制限することになりがちですが、むしろ、ユーザーを誤動作から保護することを優先して値を設定することにより、システム上のどのユーザーに対しても、システム全体の性能を向上することが可能になるからです。

付加情報


プロセス・パラメータの一覧
  構成可能カーネル・パラメータ・ヘルプのブラウズ
最初のページへ    

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項