Skip to main content

Red Hat Linux プラットフォームの問題

このトピックには、以下の調整に関する情報が含まれます。

共有メモリ制限

Linux プラットフォームでの、既定の共有メモリ制限 (shmmax) は、32 MB です。この値は InterSystems IRIS では小さすぎますが、proc ファイル・システムで変更することができます。その場合、再起動は必要ありません。新しいメモリ制限は、Red Hat Linux システムを再起動するまで維持されます。

例えば 128 MB で設定したい場合は、以下のコマンドを入力します。

$ echo 134217728 >/proc/sys/kernel/shmmax

上記のコマンドは、起動スクリプトに入力することができます。

また、sysctl(8) が利用できる場合はこれを利用して、パラメータを恒久的に設定することもできます。以下のような行を /etc/sysctl.conf に追加します。

kernel.shmmax = 134217728

このファイルは通常、スタートアップ時に処理されますが、sysctl は後で明示的に呼び出すこともできます。

Important:

1 台のマシン上で 複数の InterSystems IRIS インスタンスを実行する場合、msgmni パラメータの設定値が小さすぎる可能性があります。この値には、システムで同時に実行する InterSystems IRIS インスタンス数の 3 倍に相当する値を設定してください。

他のパラメータは、InterSystems IRIS アプリケーションに対して十分にサイズ調整されています。他のパラメータの値を表示するには、/usr/src/linux/include/asm-xxx/shmparam.h/usr/src/linux/include/linux/sem.h の 2 つのファイルを調べてください。

詳細は、"Red Hat Enterprise Linux 4: リファレンス・ガイド" の “proc ファイル・システムOpens in a new tab” の章を参照してください。

ロックインされたメモリ

Linux プラットフォームでは、共有メモリがヒュージ・ページに割り当てられている場合、ヒュージ・ページはメモリ内で自動的にロックされます (それ以上の操作は必要ありません)。ヒュージ・ページの割り当ての詳細は、この章の "Linux でのヒュージ・ページの構成" を参照してください。

ヒュージ・ページを使用しない場合、共有メモリ・セグメントをメモリにロックしてページングを防ぐように InterSystems IRIS を構成できます。これについては、"構成パラメータ・ファイル・リファレンス" の “memlock” エントリの LockSharedMemory セクションで説明されています。

それ以外の場合は、メモリ内にロックされる可能性のある最大サイズを増やす必要があります。既定値は 32 KB です。現在の値を表示するには、ulimit コマンドを使用します。

例えば、現在の制限値をすべて表示するには、以下のようにします。

bash$ ulimit -a 
core file size (blocks, -c) unlimited 
data seg size ( KBytes, -d) unlimited 
file size (blocks, -f) unlimited 
pending signals (-i) 1024 
max locked memory (KBytes, -l) 32 <---------- THIS ONE 
max memory size (KBytes, -m) unlimited 
open files (-n) 1024 
pipe size (512 bytes, -p) 8 
POSIX message queues (bytes, -q) 819200 
stack size ( KBytes, -s) 10240 
cpu time (seconds, -t) unlimited 
max user processes (-u) 49000 
virtual memory ( KBytes, -v) unlimited 
file locks (-x) unlimited 

max-locked memory のみ表示するには、-l オプションを使用します。

bash$ ulimit -l 
32 

権限を持っていれば、ulimit コマンドを使用して直接値を変更できますが、/etc/security/limits.conf ファイルで memlock パラメータを更新することをお勧めします。memlock の制限値が小さすぎる場合、Linux から ENOMEM (メモリ不足) エラーが表示されますが、これでは原因が明らかになりません。実際にメモリは割り当てられています。エラーを起こしているのはロックなのです。

詳細は、"構成パラメータ・ファイル・リファレンス" の "memlock" を参照してください。

多数の同時プロセスの調整

多数のプロセスまたは Telnet ログインを必要とするシステムを実行する場合は、以下の調整を行う必要があります。

  1. /etc/xinetd.d/telnet ファイルに、以下の行を追加します。

    instances = unlimited
    
    
  2. /etc/xinetd.conf ファイルで、インスタンスの設定を以下のように追加または変更します。

    instances = unlimited
    
    
  3. これらの変更が完了したら、以下のコマンドを使用して xinetd を再起動します。

    # service xinetd restart
    
  4. 既定の pty (擬似ターミナル接続) 制限は 4096 です。これでも足りない場合は、/etc/sysctl.conf ファイルに最大 pty 行を追加するか変更します。以下に例を示します。

    kernel.pty.max=10000
    

ダーティ・ページのクリーンアップ

(例えば 8 GB 以上の) 大規模なメモリ・システムでは、フラット・ファイルを何度も書き込む場合 (例えば InterSystems IRIS のバックアップやファイル・コピーなど)、proc/sys/vm/ に格納されている以下のパラメータを調整することにより、パフォーマンスを向上させることができます。

  • dirty_background_ratio — pdflush が書き込みを開始するまでに、ダーティ・ページで満たすことのできるアクティブの最大割合。このパラメータは 5 に設定することをお勧めします。

  • dirty_ratio — より多くの書き込みが許可される代わりに、タイム・スライス間のダーティ・バッファを書き込むプロセスが強制されるまでに、ダーティ・ページで満たすことのできる合計メモリの最大割合。このパラメータは 10 に設定することをお勧めします。

これらの変数は、/etc/sysctl.conf ファイルに以下を加えることで設定できます。

vm.dirty_background_ratio=5 
vm.dirty_ratio=10

これらの変更は、Linux pdflush デーモンに対して、大量の更新バーストでストレージが溢れる可能性のある大量の更新をキューに入れるより頻繁に、ダーティ・ページへの書き出しを強制するものです。

Kerberos の使用

Red Hat Linux プラットフォームで Kerberos を使用するには、krb5-libs パッケージに加えて krb5-devel パッケージもインストールする必要があります。krb5-devel をインストールすると、Kerberos を使用するために必要なシンボリック・リンクが設定されます。このパッケージは、開発環境だけでなく、実稼働環境にも必要です。これらのコンポーネントの詳細は、Red Hat NetworkOpens in a new tab Web サイトを参照してください。

FeedbackOpens in a new tab