Solaris unix NLWP 限制

Solaris unix NLWP limit

我有一个关于在 unix solaris 上增加一个进程下的 NLWP 限制的问题。

假设一个 java 进程是 运行 并且如果我输入这样的命令

prstat

输出内容如下:

java/2000

这里有 2000 个是 NLWP。 那么我该如何增加或决定这个 NLWP 的限制呢?

他纳克

默认情况下,没有硬编码限制,但可能存在限制任务、项目或区域的线程数的设置。参见:

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

否则,您可能会达到限制,具体取决于堆栈大小和使用的 jvm 类型。

如果出现内存不足错误,请切换到 64 位 JVM(如果尚未),如果与您的代码兼容,请尝试使用 -Xss 减小 java 堆栈大小选项,例如

-Xss128k

但要注意堆栈太小会导致 java.lang.WhosebugError 错误。

最后,如果您的 java 进程将自身限制为一定数量的线程,则您无法使用 JVM 或系统调整进行任何操作。查看代码或程序文档。