在过去的几年中,Docker一直是非常受欢迎的容器技术,而原因也很简单。将基于JVM的应用程序容器化部署,可以为应用程序提供一致的开发、部署环境以及零耦合的环境隔离。但不幸的是,目前的JVM在Linux容器内运行事务并不那么简单。因此,为了优化一些问题,Java 9和10做了很多非常必要的改进,这里我们重点说三点。堆(Heap)大小默认[1]情况下,在64位的服务器中,JVM通常将最大堆大小设定为物理内存的1/4。而在容器化环境中,这确实没有什么意义,因为你通常拥有很多可以运行多个JVM的大内存的服务器。如果你在不同的容器中运行10个JVM,并且每个JVM最终都使用了1/4的RAM,那么你将面临过度使用机器RAM的窘境,并且有可能最终导致虚拟内存耗尽——结局就是
………………………………