2016-10-06 9 views
0

UNIX solarisの1つのプロセスでNLWPの制限を増やすことについて質問があります。Solaris unix NLWP制限

と仮定1つのJavaプロセスが実行されていると私はこの

prstat 

のようなコマンドを入力する場合は、次の内容で出力が得られます。

のjava /ここでは2000

2000であるNLWP 。 NLWPの制限をどのように増やしたり、決めることができますか?デフォルトでは

Thanak

答えて

1

は、何のハードコードさ制限はありませんが、タスク、プロジェクトまたはゾーンパースレッド数の上限を設定があるかもしれません。参照:

task.max-lwps, project.max-lwps and zone.max-lwps 

これ以外の場合は、スタックサイズと使用するjvmの種類によって制限を超える場合があります。

メモリ不足エラーが発生した場合は、まだ64ビットJVMに切り替えてください。コードと互換性がある場合は、-Xssオプションを使用してJavaスタックサイズのサイズを小さくしてみてください。

-Xss128k 

ただし、スタックが小さすぎると、java.lang.StackOverflowErrorエラーが発生します。

最後に、Javaプロセスがスレッド数に制限されている場合、JVMやシステムチューニングでは何もできません。コードやプログラムのドキュメントを見てください。

+0

はい。 64ビットJVMを実行しています。私たちは以下の設定をしています。 -Xss256k -XX:+ UseLargePages -XX:LargePageSizeInBytes = 256m。そして、あなたはtask.max-lwps、project.max-lwps、zone.max-lwpsについて詳述していますか?これをどこで変更/チェックできますか? –

+0

これはstackoverflowの範囲外ですが、 'prctl '出力とhttps://docs.oracle.com/cd/E19044-01/sol.containers/817-1592/rmctrls.task-3/indexを見てください。 .htmlで始まり​​ます。 – jlliagre

+0

ありがとうございます。それはall-2.15Gでも同じです。 project.max-lwps システム2.15G max deny- これはスレッドの数とは関係がないことを教えてください。それともスタックのサイズに関係しているのでしょうか? –