2016-10-06 46 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最大拒绝 - 你能告诉我,这是怎么回事吗?或者它只与堆栈的大小有关? –