Joh*_*0te 2 java operating-system jvm
我发布了这个问题的答案,我意识到我对某些事感到困惑.我问了几个熟悉Java的同事,我们都有点难过.
在这种情况下会发生什么:
此时,您已经使用了所有可用的JVM内存,但是您没有违反在启动时设置的JVM内存限制.操作系统限制了您获取更多资源的能力,而不是JVM本身.
我会认为这会产生一个OutOfMemoryError,如果你超过2GB JVM大小限制就会得到.我不得不承认,在实践中,当我们在服务器上运行太多进程时,我倾向于看到减速并且没有内存异常.
请注意,我知道分页,当内存耗尽时,进程会在Linux中被终止.我有兴趣知道在JVM级别是否有任何其他机制可能会导致更多的阻塞效应,因为这是另一个问题中的人在他的评论中提出的问题.我意识到答案可能只是"不,没有其他机制."
后续问题/评论
这是因为除非您达到实际的JVM内存限制,否则不会抛出内存异常?如果是这样,当操作系统在未达到限制时无法为JVM提供更多内存时会发生什么?在操作系统中有内存之前,是否存在某种阻塞或类似机制?
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |