java - 如何增加 Windows 服务器上的线程限制?
问题描述
根据 如何解决 Java 错误 "pool-1-thread-xxxx" java.lang.OutOfMemory。据我所知,解决问题有两个方向。要么优化源代码,要么增加线程限制。我没有源代码。我认为增加线程限制是我可以尝试的唯一方法。我一直在寻找答案,但仍然找不到正确的方法。我的操作系统是 64 位 windows server 2012。这意味着它默认为堆栈保留 1MB。阅读此https://blogs.technet.microsoft.com/markrussinovich/2009/07/05/pushing-the-limits-of-windows-processes-and-threads/后,我对线程限制感到完全困惑. 有几点我不明白:
错误消息显示“pool-1-thread-1395”。为什么限制数量只有 1395 个线程?我认为它应该比它更多。
我还阅读了一些有关虚拟内存的信息。这可能会影响线程限制。我发现我的操作系统只有 1024MB 的虚拟内存,这就是线程限制这么低的原因吗?(1024MB VM/1MB 堆栈大小 = 1024 个线程)
有一个java执行参数-xss。它表示堆栈的初始大小。如果我将其设置为 128k,是否会更改操作系统默认的 1M 堆栈大小?
任何建议将不胜感激。
机器信息:
- 操作系统:64 位 Windows 服务器 2012 R2
- Java版本:jre1.8.0_171
- 内存:10G
- CPU:2.5 GHz Intel Xeon(R)(超线程)
解决方案
推荐阅读
- android - Kotlin - 函数的通用绑定
- python - 修改 enum.IntFlag __repr__
- python - 你能在 BeautifulSoup 中找到汤的父代吗
- javascript - 即使我跳到下一个元素,焦点指示器也会停留在无线电输入上
- python - 在 Python 中创建一个无限行和 25 列的空白表(数组)
- pandas - 如何在不完全匹配的情况下合并 pandas DF?
- python - 我可以发送 **kwargs 来代替 requests.post 中的 set 参数吗?
- xslt - 您可以在 XSL 中的分组分隔符上应用样式表吗?
- sql-server - 如何使用 System.Threading.Monitor 在 powershell 中锁定对象/类型?
- python - Pandas Dataframe 将多列分成箱并绘制每个