如何增加最大数量的JVM线程Linux 64位

在15G内存的Linux机器上,我不能创build超过32k的Java线程。

使用Linux PulseAudio时,Javaaudio剪辑无法closures

Taskkill似乎不会杀死进程

在Java中获得非Java Windows的标题

我可以使用JavaFX将更多的开始菜单项添加到我的程序中吗?

Java Runtime.exec()不从命令行发送电子邮件

您可以使用示例程序找出当前的线程限制。

如果Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread遇到Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread ,请检查以下内容:

在小型记忆机器上

每个Java线程都使用自己的堆栈内存。 默认堆栈大小是1024k(= 1M)。 您可以像java -Xss512k ...一样减小堆栈大小。 如果堆栈大小太低,JVM将无法启动。

并注意堆内存配置:(初始) -Xms和(最大) -Xmx 。 分配给堆的内存越多,堆栈的可用内存就越少。

系统限制

ulimit -a某些值可能会影响线程限制。

max memory size – 在大多数64位机器上无限制

max user processes – Linux将进程视为线程

virtual memory – 在大多数64位机器上无限制。 虚拟内存使用增加了-Xss配置(默认为1024k)

您可以通过(临时)运行ulimit命令或(永久)编辑/etc/security/limits.conf来更改这些值。

sys.kernel.threads-max

这个值是系统全局(包括非JVM进程)的最大线程数。 检查cat /proc/sys/kernel/threads-max ,并在必要时增加。

echo 999999 > /proc/sys/kernel/threads-max

要么

sys.kernel.threads-max = 999999在/etc/sysctl.conf中永久更改。

sys.kernel.pid_max

如果cat /proc/sys/kernel/pid_max与当前限制类似,请增加此值。 Linux将线程视为进程。

echo 999999 > /proc/sys/kernel/pid_max

要么

sys.kernel.pid_max = 999999在/etc/sysctl.conf中永久更改。

你也可能需要增加sys.vm.max_map_count 。

sys.vm.max_map_count

cat /proc/sys/vm/max_map_count应该至少(2个线程数)。

Attempt to protect stack guard pages failed. 和OpenJDK 64-Bit server VM warning: Attempt to deallocate stack guard pages failed. 错误消息由JavaThread :: create_stack_guard_pages()发出,并调用os :: guard_memory()。 在Linux中,这个函数是mprotect()。

echo 1999999 > /proc/sys/vm/max_map_count

要么

sys.vm.max_map_count = 1999999在/etc/sysctl.conf中永久更改。

现代(systemd)linux系统的附加信息。

有很多关于这个值的资源可能需要调整(另一个答案是其中大多数的一个很好的来源); 然而,通过在cgroup上设置pids.max的系统“TasksMax”限制来施加新的限制。

对于登录会话, UserTasksMax默认为内核限制pids_max的33%(通常为12,288),可以在/etc/systemd/logind.conf中覆盖。

对于服务, DefaultTasksMax默认值是内核限制pids_max的15%(通常为4,915)。 您可以通过在“systemctl edit”中设置TasksMax或更新/etc/systemd/system.conf中的DefaultTasksMax来覆盖该服务

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...