各種チューナブル・パラメーター
AIX® で使用可能な各種パラメーターのいくつかはチューナブルです。
- AIX_TZCACHE (AIX_TZCACHE)
項目 ディスクリプター 目的: プロセスの期間全体にわたって、TZ 変数の固定されたコピーを保管します。 値: デフォルト : 設定されていません。 可能な値: ON (パラメーターを有効にする)
表示: $AIX_TZCACHE 変更: AIX_TZCACHE=ON のエクスポート 変更は、以後このシェルから開始されるすべてのプロセスに対して有効になります。 TZ 変数の初期の開始値を常に使用するように、アプリケーションに指示します。 アプリケーションによって頻繁にタイム・ゾーンのルックアップが呼び出される場合に、このプロセスによってパフォーマンスが改善されます。 例えば、アプリケーションが現地時間を頻繁に検査する場合がこれに当たります。 ただし、アプリケーションが既に開始されている場合、TZ 変数の変更は認識されません。
診断: このパラメーターは、/etc/environment ファイル内の汎用システム構成には推奨されません。 このパラメーターは、TZ 変数を変更しないアプリケーションが、頻繁にタイム・ゾーンの要求を行う場合に使用してください。 チューニング: 該当なし - EXTSHM参照: 拡張共有メモリー
項目 ディスクリプター 目的: 拡張共有メモリー機能をオンにします。 値: デフォルト : 設定されていません。 可能な値 : ON、1SEG、MSEG
表示: エコー $EXTSHM 変更: EXTSHM のエクスポート 変更は、このシェル内で即時に有効になります。 変更は、このシェルからログアウトするまで有効です。 永続的な変更を行うには、EXTSHM=ON、EXTSHM=1SEG、または EXTSHM=MSEG コマンドを /etc/environment ファイルに追加します。
診断: 該当なし チューニング: 値を ON、1SEG または MSEG に設定すると、プロセスは 1 バイトの共有メモリー・セグメント (ただし、これは最も近いページに切り上げられます) を割り当てることができます。 これは、11 個のユーザー共有メモリー・セグメントの制限を実質的に除去します。 32 ビット・プロセスの場合、すべてのメモリー・セグメントの最大サイズは 2.75 GB です。 EXTSHM を ON に設定すると、この変数を 1SEG に設定した場合と同じ効果があります。 いずれの設定でも 256 MB より小さい共有メモリーが mmap セグメントとして内部に作成され、 パフォーマンスへの影響は mmap と同じです。 作業セグメントには 256 MB 以上の共有メモリーが内部に作成されます。
EXTSHM を MSEG に設定すると、すべての共有メモリーは mmap セグメントとして内部に作成され、 メモリーの使用率を向上させます。
- LDR_CNTRL
項目 ディスクリプター 目的: カーネル・ローダーのチューニングを可能にします。 値: デフォルト : 設定されていません。 可能な値: PREREAD_SHLIB、LOADPUBLIC、IGNOREUNLOAD、USERREGS、MAXDATA、MAXDATA32、 MAXDATA64、DSA、PRIVSEG_LOADS、DATA_START_STAGGER、LARGE_PAGE_TEXT、 LARGE_PAGE_DATA、HUGE_EXEC、NAMEDSHLIB、SHARED_SYMTAB、または SED
表示: $LDR_CNTRL のエコー出力 変更: LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...}export LDR_CNTRL 変更はこのシェルで即時に有効になります。 変更は、このシェルからログアウトするまで有効です。 永続的な変更を行うには、/etc/environment ファイルに次の行を追加します。LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...} 診断: 該当なし チューニング: LDR_CNTRL 環境変数を使用すると、 システム・ローダーの動作を 1 つ以上の面で制御できます。 LDR_CNTRL 変数には、複数のオプションを指定できます。 このオプションを指定する場合、アットマーク符号 (@) を使用してオプションを区切ります。 LDR_CNTRL=PREREAD_SHLIB@LOADPUBLIC は複数オプションの指定例です。 PREREAD_SHLIB オプションを指定すると、ライブラリーにアクセスしたときすぐに、ライブラリー全体が読み取られます。 VMM 先読みをチューニングすれば、プログラムがページへのアクセスを開始する前に、ライブラリーをディスクから読み取り、メモリー・キャッシュに入れることができます。 この方法を使用するとメモリー使用量が増えますが、 共用ライブラリー・ページを多数使用する、アクセス・パターンが順次でないプログラム (例えば Catia) のパフォーマンスも改善できます。 LOADPUBLIC オプションを指定すると、システム・ローダーは、 アプリケーションの要求するモジュールをすべてグローバル共用ライブラリー・セグメントにロードします。 共通のグローバル共用ライブラリー・セグメントにモジュールをロードできない場合、 モジュールはアプリケーション専用にロードされます。
IGNOREUNLOAD オプションを指定すると、アプリケーションはライブラリーをアンロードできなくなります。 この指定により、メモリーをフラグメント化できなくなり、ライブラリーを繰り返しロードおよびアンロードするときに発生するオーバーヘッドはなくなります。 IGNOREUNLOAD オプションを指定しない場合、アプリケーション・ロード時にモジュールがロードされ、さらにそのモジュールを複数回動的にロードおよびアンロードするよう要求されると、同じモジュールのデータ・インスタンスが 2 つできてしまうこともあります。
USERREGS オプションを指定すると、アプリケーションによって行われるシステム・コール全体で、汎用ユーザー・レジスターがシステムによってすべて保管されます。 このオプションは、ガーベッジ・コレクションを行うアプリケーションに有用です。
MAXDATA オプションを指定すると、プロセスの最大ヒープ・サイズが設定され、実行可能モジュールに指定したすべての maxdata 値の指定変更も行われます。 maxdata 値は、プロセスの初期ソフト・データ・リソース制限の設定に使用されます。 32 ビット・プログラムの場合、ゼロ以外の maxdata 値を指定すると、ラージ・アドレス・スペース・モードが使用可能になります。 ラージ・プログラム・サポートを参照してください。 大規模アドレス・スペース・モデルを使用不可にするには、LDR_CNTRL=MAXDATA=0 の設定により、0 の maxdata 値を指定します。 64 ビット・プログラムの場合、maxdata 値は、プログラムのデータ・ヒープに保証される最大サイズを提供します。 ヒープ用に予約されたアドレス・スペースの部分は、アドレスを明示的に指定した場合でも、shmat() サブルーチンまたは mmap() サブルーチンでは使用できません。 任意の値を指定できますが、指定された maxdata 値にかかわらず、データ域は 0x06FFFFFFFFFFFFFF を超える拡張はできません。
プロセスが 32 ビットか 64 ビットに基づいて、よりきめ細かい制御を可能にするために、2 つの追加の maxdata オプションが存在します。 これらの追加の maxdata オプションは、対応するオブジェクト・モードの MAXDATA オプションをオーバーライドします。 MAXDATA32 オプションを指定すると、64 ビット・プロセスに対して値が無視されることを除いて、MAXDATA と同じ動作になります。 MAXDATA64 オプションを指定すると、32 ビット・プロセスに対して値が無視されることを除いて、MAXDATA と同じ動作になります。
PRIVSEG_LOADS オプションを指定すると、動的にロードされた専用モジュールをプロセス専用セグメントに書き込むようシステム・ローダーに指図が行われます 。 この指定により、専用動的ロードを実行してプロセス・ヒープでメモリー不足になりがちな大容量メモリー・モデル・アプリケーションで、メモリーの可用性が改善される場合があります。 プロセス専用セグメントに十分なスペースがない場合は、PRIVSEG_LOADS オプションを指定しても効果はありません。 PRIVSEG_LOADS オプションは、ゼロ以外の MAXDATA 値を指定した 32 ビット・アプリケーションに対してのみ有効です。
DATA_START_STAGGER=Y オプションを指定すると、 vmo コマンドの data_stagger_interval オプションによって制御される MCM ごとのオフセットで、プロセスのデータ・セクションが開始されます。 指定された MCM で実行される n 番目のラージ・ページ・データ処理には、オフセット (n * data_stagger_interval * PAGESIZE) % 16 MB で開始するデータ・セクションがあります。 DATA_START_STAGGER=Y オプションは 64 ビット・カーネル上の 64 ビット・プロセスにのみ有効です。
LARGE_PAGE_TEXT=Y オプションは、ローダーがプロセスのテキスト・セグメントにラージ・ページの使用を試みることを示しています。 LARGE_PAGE_TEXT=Y オプションは 64 ビット・カーネル上の 64 ビット・プロセスにのみ有効です。
LARGE_PAGE_DATA=M オプションを指定すると、データ・セグメント全体が割り振られるのではなく、データ・セグメントのラージ・ページが最大で brk 値まで十分なだけ割り振られます。LARGE_PAGE_DATA=M オプションを指定しない場合には、データ・セグメント全体が割り振られます。 brk 値への変更をサポートするだけの十分なページがないのに brk 値を変更すると、障害が起きる場合があります。
RESOLVEALL オプションを指定すると、ローダーは、プログラム・ロード時またはプログラムが動的モジュールをロードするときにインポートされるすべての未定義シンボルを解決することを強制されます。 シンボルの解決は、標準の AIX 縦の長さ優先の順序で行われます。 LDR_CNTRL=RESOLVEALL を指定した場合にインポートされたシンボルが解決されないときは、そのプログラムまたは動的モジュールのロードは失敗します。
HUGE_EXEC オプションを指定することにより、特定の 32 ビットの実行可能ファイルの読み取り専用セグメントのプロセス・アドレス・スペース・ロケーションに対するユーザー制御が提供されます。 詳しくは、 32 ビット Huge Executableを参照してください。
NAMEDSHLIB=name,[attr1],[attr2]...[attrN]オプションを指定すると、指定した名前で識別される共用ライブラリー領域をアクセスまたは作成するプロセスが使用可能になります。 名前を付けた共用ライブラリー領域は、以下の方法で作成できます。- 属性なし
- doubletext32 属性あり。この属性は、共用ライブラリー・テキストに専用の 2 つのセグメントを持つ、名前付きの共用ライブラリー領域を作成します
NAMEDSHLIB=name,[attr1],[attr2]...[attrN]オプションは無視されます。 有効な名前は、正の長さのもので、英数字、下線文字、およびピリオド文字が含まれるものです。SHARED_SYMTAB=Yオプションを指定すると、システムは、プログラムがシンボルをエクスポートする場合、64 ビット・プログラムの共用シンボル・テーブルを作成します。 プログラムの複数のインスタンスが同時に実行される場合、共用シンボル・テーブルを使用すると、プログラムで必要なシステム・メモリー量を削減することができます。SHARED_SYMTAB=Nオプションを指定すると、システムは 64 ビット・プログラム用の共用シンボル・テーブルを作成できなくなります。 このオプションは、XCOFF 補助ヘッダー内のAOUT_SHR_SYMTABフラグをオーバーライドします。SED オプションを指定すると、実行可能モジュールで指定される他の SED モードを無視することによって、プロセスのスタック実行不可 (SED) モードが設定されます。 このオプションは、以下のいずれかの値に設定しなければなりません。SED=system SED=request SED=exempt - LDR_プリロード LDR_PRELOAD64
項目 ディスクリプター 目的: 共用ライブラリーのプリロードを要求します。 LDR_PRELOAD オプションは 32 ビット・プロセス用、LDR_PRELOAD64 オプションは 64 ビット・プロセス用です。 シンボルの解決では、この変数にリストされたプリロード・ライブラリーが、 最初にすべてのインポートされたシンボルごとに検索され、これらのライブラリーで検出されない場合のみ、 通常の検索が使用されます。 プリロードされたライブラリーからのシンボルの優先使用は、 AIX のデフォルト・リンクとランタイム・リンクの両方で機能します。 据え置きシンボル解決は未変更です。 値: デフォルト : 設定されていません。 可能な値: ライブラリー名 (複数可)注: 複数のライブラリーがリストされている場合は、コロン (:) で区切ってください。 アーカイブ・ライブラリーのメンバーを括弧で囲んでください。表示: echo 「$LDR_PRELOAD」 echo $LDR_PRELOAD64
変更: $LDR_PRELOAD = "libx.so:liby.a(shr.o)" 最初に libx.so 共用オブジェクトから必要なシンボルを解決し、 続いて liby.a の shr.o メンバーから必要なシンボルを解決し、 最後に、プロセスの依存関係内の必要なシンボルを解決します。 さらに、動的にロードされたすべてのモジュール (dlopen() または load() を使用してロードされたモジュール) は、 最初に、変数ごとにリストされたプリロード・ライブラリーから解決されます。
診断: 該当なし - NODISCLAIM参照: 早期ページ・スペース割り振り
項目 ディスクリプター 目的: free() に対するコールの処理方法を制御します。 PSALLOC が early に設定されている場合、 すべての free() コールの結果として、disclaim() システム・コールが行われます。 NODISCLAIM が true に設定されている場合には、このことは起こりません。 値: デフォルト : 設定されていません。 可能な値 : True
表示: エコー $NODISCLAIM 変更: NODISCLAIM=true エクスポート NODISCLAIM 変更は、このシェル内で即時に有効になります。 変更は、このシェルからログアウトするまで有効です。 永続的な変更を行うには、NODISCLAIM=true コマンドを /etc/environment ファイルに追加します。
診断: disclaim() システム・コールの数が非常に多い場合には、 この変数を設定しなければならない可能性があります。 チューニング: PSALLOC が早くに設定されている場合、この変数を設定すると、free()からのdisclaim()オプションへの呼び出しがなくなります。 - NSORDER参照: ネーム・レゾリューションのチューニング
項目 ディスクリプター 目的: セット・ネーム・レゾリューションの検索順を上書きします。 値: デフォルト : bind、nis、local 可能な値 : bind、local、nis、bind4、bind6、local4、local6、nis4、または nis6
表示: $NSORDER をエコー出力 これは内部でオンにされるので、初期デフォルト値は echo コマンドでは表示されません。
変更: NSORDER=value、 value、 ... NSORDER のエクスポート 変更は、このシェル内で即時に有効になります。 変更は、このシェルからログアウトするまで有効です。 永続的な変更を行うには、NSORDER=value コマンドを /etc/environment ファイルに追加します。
診断: 該当なし チューニング: NSORDER は、/etc/netsvc.conf ファイルをオーバーライドします。 - PSALLOC参照: ページング・スペース・スロットの割り振りと再利用 および 早期ページ・スペース割り振り
項目 ディスクリプター 目的: ページング・スペース割り振りポリシーを判別できるように、PSALLOC 環境変数を設定します。 値: デフォルト : 設定されていません。 可能な値 : early
表示: エコー $PSALLOC 変更: PSALLOC=EARLY エクスポート PSALLOC 変更は、このシェル内で即時に有効になります。 変更は、このシェルからログアウトするまで有効です。
診断: 該当なし チューニング: 低いページング条件のためにプロセスが削除されないように、 このプロセスは、早期ページ・スペース割り振りポリシーを使用して、 ページング・スペースを事前割り当てすることができます。 しかし、これはむだなページング・スペースを生む可能性があります。 NODISCLAIM 環境変数も設定しなければならない場合があります。 - RT_GRQ参照: スケジューラー実行キュー
項目 ディスクリプター 目的: スレッドを、CPU ごとの実行キューではなく、グローバル実行キューに置きます。 値: デフォルト : 設定されていません。 範囲 : ON、OFF
表示: $RT_GRQ のエコー出力 変更: RT_GRQ={OFF/ONエクスポート RT_GRQ 変更は即時に有効になります。 変更は次のブートまで有効です。 永続的な変更を行うには、RT_GRQ={ON|OFF} コマンドを /etc/environment ファイルに追加します。
診断: 該当なし チューニング: マルチプロセッサー・システムでチューニングすることができます。 この変数を ON に設定すると、スレッドはグローバル実行キューに置かれます。 その場合、どのスレッドが最高の優先順位を持っているかを確かめるために、 グローバル実行キューの検索が行われます。 これにより、スレッドがより早くディスパッチされ、SCHED_OTHER を実行中であり、 かつ、割り込み駆動型のスレッドのパフォーマンスを改善することができます。 - RT_MPC (RT_MPC)
項目 ディスクリプター 目的: リアルタイム・モードでカーネルを実行中であり (bosdebug コマンドを参照)、 より高い優先順位のスレッドが実行可能であって、 そのスレッドを即時にディスパッチできる場合には、MPC を別の CPU に送信して割り込むことができます。 値: デフォルト : 設定されていません。 範囲 : ON
表示: echo 「$RT_MPC」 変更: RT_MPC=ON エクスポート RT_MPC 変更は即時に有効になります。 変更は次のブートまで有効です。 永続的な変更を行うには、 RT_MPC=ON コマンドを /etc/environment ファイルに追加します。
診断: 該当なし - TZ
項目 ディスクリプター 目的: タイムゾーンを設定します。 値: デフォルト: Olson タイムゾーン 可能な値: Olson タイムゾーンまたは POSIX タイムゾーン
表示: echo $TZ 変更: TZ = 値エクスポート TZ 変更は、シェル内で即時に有効になります。 変更は、ユーザーがこのシェルをログアウトするまで有効です。 TZ= value コマンドを /etc/environment ファイルに追加することにより、永続的な変更を行うことができます。
診断: 該当なし チューニング: POSIX は、パフォーマンスに依存し、タイム・ゾーン・ルールおよび夏時間調整時刻に対する正確な変更に依存しないアプリケーションによって使用されることがあります。 - VMM_CNTRL (VMM_CNTRL)
項目 ディスクリプター 目的: 仮想メモリー・マネージャーのチューニングを可能にします。 値: デフォルト : 設定されていません。 指定可能な値: vmm_fork_policy、ESID_ALLOCATOR、SHM_1TB_SHARED、SHM_1TB_UNSHARED
表示: echo $ VMM_CNTRL 変更: VMM_CNTRL={vmm_fork_policy=… | ESID_ALLOCATOR=… | ...}VMM_CNTRL のエクスポート 変更は、このシェル内で即時に有効になります。 変更は、ユーザーがこのシェルをログアウトするまで有効です。 永続的な変更を行うには、
VMM_CNTRL=環境変数を /etc/environment ファイルに追加します。診断: 該当なし チューニング: VMM_CNTRL環境変数を使用すると、仮想メモリー・マネージャーを制御できます。VMM_CNTRL環境変数を使用して、各オプションを「@」記号で区切ることにより、複数のオプションを指定することができます。 複数のオプションを指定する例を次に示します。VMM_CNTRL=vmm_fork_policy=COW@SHM_1TB_SHARED=5vmm_fork_policy=COWオプションを指定すると、プロセスが fork されるたびにvmmはコピー・オン・ライト fork-tree ポリシーを使用します。 これがデフォルトの動作です。vmmがコピー・オン・ライト・ポリシーを使用しないようにするには、vmm_fork_policy=CORオプションを使用します。vmm_fork_policyオプションを指定すると、vmm_fork_policyグローバル・チューナブルは無視されます。ESID_ALLOCATORオプションを指定すると、アロケーターによるshmatおよびmmapの宛先のない割り振りが制御されます。 詳しくは、 1 TB セグメントの別名割り当て を参照してください。SHM_1TB_SHAREDまたはSHM_1TB_UNSHAREDを指定すると、1 TB 共有メモリー領域の使用が制御されます。 詳しくは、 1 TB セグメントの別名割り当て を参照してください。 - AIX_STDBUFSZ (AIX_STDBUFSZ)
項目 ディスクリプター 目的: cp、mv、cat、cpio の各コマンドによって生成される、読み取りと書き込みのシステム呼び出し用の入出力バッファー・サイズを構成します。 これは、ストリーム・バッファリングにも適用できます。 値: デフォルト: 設定されていません。 可能な値: バイト、KB、MB の単位でバッファー・サイズを指定する整数値。
表示: echo $ AIX_STDBUFSZ 変更: AIX_STDBUFSZ=1024; export AIX_STDBUFSZ (バッファー・サイズ 1024 を構成する場合) 変更は、このシェル内で即時に有効になります。 変更は、ユーザーがこのシェルをログアウトするまで有効です。 バッファー・サイズの永続的な変更を行うには、
AIX_STDBUFSZ環境変数を /etc/environment ファイルに追加します。診断: 該当なし チューニング: 値は次の方法で指定します。- 整数値は、
export AIX_STDBUFSZ=1024の形式で指定します。 - 16 進数値は、
export AIX_STDBUFSZ=0x400の形式で指定します。
- 制限: 最小限度は 64 バイトで、最大限度は 127 MB です。
- これらの限度の範囲外にある有効な整数は、最も近い限界値に戻されます。
- 指定値が 2 のべき乗ではない場合は、2 のべき乗で最も近い、指定値より小さな値に切り捨てられます。
AIX_STDBUFSZパラメーターの値が無効の場合、値は無視されます。
- 整数値は、
- AIX_LDSYM (AIX_LDSYM)
項目 ディスクリプター 目的: Lightweight_coreファイル内のソース行情報は、テキスト・ページのサイズが 64 K の場合、デフォルトでは表示されません。 テキスト・ページのサイズが 64 K の場合は、Lightweight_coreファイル内のソース行情報を取得するのに、環境変数AIX_LDSYM=ONを使用してください。値: デフォルト: 設定されていません。 可能な値: ON。
表示: echo $ AIX_LDSYM 変更: エクスポート AIX_LDSYM=ON 変更は、このシェル内で即時に有効になります。 変更は、ユーザーがこのシェルをログアウトするまで有効です。 システムの永続的な変更を行うには、
AIX_LDSYM=ON環境変数を /etc/environment ファイルに追加します。診断: 該当なし チューニング: このパラメーターは、テキスト・ページ・サイズが 64 K で、その
Lighweight_coreファイル内のソース行情報を必要とするアプリケーションの場合に使用します。