2016-10-06 79 views
0

我有一個關於在unix solaris上的一個進程下增加NLWP限制的問題。Solaris unix NLWP限制

假設一個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

謝謝。它顯示相同的 - 2.15G。 project.max-lwps 系統2.15G最大拒絕 - 你能告訴我,這是怎麼回事嗎?或者它只與堆棧的大小有關? –