Solaris 10でシステム全体の制限を永久に設定/変更する方法

Solaris 10でシステム全体の制限を永久に設定/変更する方法

Oracleアプリケーションが正常に動作できるように、Solaris 10サーバーの制限を変更するように求める電子メールをOracleから受け取りました。

残念ながら、私はSolarisの経験がないので、助けが必要です。

値は次のとおりです。

A00110 This rule verifies that the ulimit settings are adequate Oracle Database 11g R2. The recommended values are not less than: 
ulimit(TIME) = unlimited
ulimit(FILE) = unlimited
ulimit(DATA) = 1048576
Soft ulimit(NOFILES) = 1024
Hard ulimit(NOFILES) = 65536
ulimit(VMEMORY) = 4194304
and not more than 
Soft ulimit(STACK) = 10240
Hard ulimit(STACK) = 32768
VmemoryNotDefined 
StackHardUnlimited Review the ulimit settings: 
Set the hard ulimit(STACK) to a maximum of 32768 
ulimit(VMEMORY) is not defined

答え1

グローバルファイル記述子の制限を増やすことはお勧めできません。 255を超えるファイル記述子の使用方法がわからないと、32ビットプログラムが失敗する可能性があるためです。を参照してくださいenable_extended_FILE_stdio(3C)

ulimitしたがって、最初に制限を設定するために必要な呼び出しを実行してから、データベースを呼び出すシェルスクリプトを介してoracleデータベースを呼び出すことをお勧めします。

Bourne Shellを使用して検索できる一般的なSolaris制限セットを紹介します(例を参照)。ksh93ksh93には他の設定できないリソースの情報が含まれているため、ksh93を使用することは役に立ちません。これはSolarisのデフォルト設定です。

LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited

ご覧のとおり、開かれたファイル記述子を除くすべてのデフォルト値は必要以上に高くなります。スタックのハード制限を減らすべきかどうかはわかりません。

この値を変更するには、シェルスクリプトを作成して次のように入力します。

ulimit -nS 1024

これにより、ソフトファイル記述子の制限が1024に増え、新しい制限が作成されます。

-n: nofiles(descriptors) 1024:65536

ハードスタックの制限を減らす必要がある場合は、次のように入力します。

ulimit -sH 32768

これにより、ハードスタックの制限が32MBに減り、次のような結果が得られます。

-s: stack(kbytes) 10240:32768

次に、oracleデータベースを起動するコマンドをスクリプトに入力し、スクリプトを実行します。

関連情報