Gau*_*rav 3 java linux multithreading jvm stack-size
我的目标是提出可以并行运行的最大线程数。谷歌向我指出了许多链接,他们通过划分 RAM/StackSize 给出了简单的数学计算。在 64 位 Linux 中,我们将线程堆栈大小定义为 10 MB(ulimit -s = 10240kb),RAM 为 4GB,为 OS 留出 1 GB,按照这个数学计算我可以有大约 300 个线程,但是我的小型测试应用程序写到 ~32297 然后给出内存不足错误。
我用 -Xss 尝试了不同的值,但这些值对线程数几乎没有任何影响,它仍然与 ~32297 相同)。
这给我的印象是堆栈大小是可变的,由操作系统决定,并在需要时达到我们定义的最大值,但无论我在哪里阅读,它们的大小堆栈大小都是静态的
我到底错过了什么?
尝试使用检查/更改 linux 最大堆栈大小
ulimit -s
Run Code Online (Sandbox Code Playgroud)
还要检查linux线程限制
cat /proc/sys/kernel/threads-max
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20212 次 |
| 最近记录: |