Ulimit 概要

対応バージョン :3.5.31
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

Java Service Wrapper は、システム全体のリソースの使用を制限できます。

各リソースは二つの制限があります:ソフトリミットとハードリミット。 遵守すべきルールは次のとおりです:

  • ソフトリミットはハードリミットを超えることはできません。
  • ハードリミットは root ユーザーが設定した値よりも大きい値に変更することはできません。

ご利用中システムの現在の制限を確認するには、ターミナルで次のコマンドを実行してください:

制限を表示する:
# To see the list of soft limits:
ulimit -a

# To see the list of hard limits:
ulimit -Ha

現在、<resource> は以下のようになります:

  • [nofile] (3.5.31より):

    オープンできるファイル記述子の制限を設定します。それは Wrapper とそのチャイルド(子)プロセスが開けるファイルの最大数です。

  • [data] (3.5.33より):

    Wrapper により開始された各プロセスのデータセグメントサイズの制限を設定します。

Wrapper プロパティの代わりとして、Wrapper を起動させるシェルスクリプト内の組み込み「ulimit」コマンドを使用できます。 Wrapper と Java アプリケーションとすべてのチャイルド(子)プロセスがシェルリソースの制限を継承します。

例:
# ファイル記述子の数のソフトリミットを設定:
ulimit -n 2048

# ファイル記述子の数のハードリミットを設定:
ulimit -H -n 50000

注意

使用できる値の範囲は、OS 及びリソースのタイプによって異なる場合があります。システムによっては、特定のリソースに対して「unlimited」の値を設定できるシステムもあれば、この値を使用できないシステムもあります。

wrapper.ulimit.nofile.strictFALSE に、または wrapper.ulimit.nofile.softHARD に設定すると自動的に各値を最大値まで上げることが出来ます。

wrapper.ulimit.<resource>.soft

対応バージョン :3.5.31
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

こちらのプロパティは、指定のリソースのソフトリミットを設定するために使われます。Wrapper、若しくはそのチャイルド(子)プロセスに適用されます。

デフォルト値は、Wrapper を開始したシェルで設定された制限値から継承されます。

HARD」値はソフトリミットの値をハードリミットの値に設定するために使用できます。

UNLIMITED」 値は OS が対応できる最大のリミットに設定するために使用できます。 ただし、これはハードリミットを「UNLIMITED」に設定する必要があります。

注意

OS が指定されたリソースに対して「unlimited」をサポートしていない場合、wrapper.ulimit.<resource>.strict をFALSEに設定することで現在のハードリミットの値に解決されます。

例:
wrapper.ulimit.nofile.soft=2048
wrapper.ulimit.data.soft=unlimited

wrapper.ulimit.<resource>.hard

対応バージョン :3.5.31
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

こちらのプロパティは指定のリソースのハードリミットを設定するために使われます。Wrapper、若しくはそのチャイルド(子)プロセスに適用されます。

デフォルト値は、システムコンフィギュレーションから継承されます。

UNLIMITED」値は OS が対応できる最大のリミットに設定するために使用できます。 ただし、これには root ユーザーとして Wrapper を実行する必要があります。

注意

OS が指定されたリソースに対して「unlimited」をサポートしていない場合、wrapper.ulimit.<resource>.strict をFALSEに設定することで現在のハードリミットの値に解決されます。

例:
wrapper.ulimit.nofile.hard=65536
wrapper.ulimit.data.hard=unlimited

wrapper.ulimit.<resource>.strict

対応バージョン :3.5.31
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

「TRUE」に設定すると、コンフィギュレーションで定義されている指定されたリソースの制限を設定できない場合、このプロパティは Wrapper を停止させます。

値が「FALSE」の場合、ハードリミットとソフトリミットを設定された値にできるだけ近い値に調整を試みます。 警告が表示され、Wrapper は継続されます。異なるリソース制限でセットアップされた複数のマシンで同じ構成を使用する必要がある場合は、厳密でない方が役に立ちます。 ただし、ハードリミットとソフトリミットの両方が指定されていて、ソフトリミットがハードリミットよりも高く設定されている場合などの不正な設定の場合、Wrapper は停止します。

デフォルト値は TRUE です。

例:
wrapper.ulimit.nofile.strict=FALSE

wrapper.ulimit.loglevel

対応バージョン :3.5.31
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

このプロパティはシステム全体のリソースの制限(ソフトリミットとハードリミット)を表示するために使用します。

デフォルト値は DEBUG です。

例:
wrapper.ulimit.loglevel=STATUS