java 进程是如何在Linux服务器上进行内存分配的
直到我发现使用top命令监控的Java进程在-Xms设置4g的情况下占用的内存并不是4g,这就产生了一个疑问Linux服务器的内存到底是如何进行分配的。在Linux上运行的进程不仅限于Java。都有一个概念,逻辑内存,而物理机真是持有的内存,我们称为 物理内存。进程在开始运行时并不会直接分配物理内存,进程只是傻乎乎的以为自己持有了内存,也就是逻辑内存。1进程之间相互隔离 2进程自己认为占有了一段独立连续的内存 3可以申请比物理内存更大的内存空间。比如频繁的Swap,这会导致内存操作转化为磁盘的的IO操作,拖慢应用进程的运行速度。超过设置的上限,Kernel内核就会触发OOM Killer,杀死一部分进程腾空间。
用户评论