我们是一家物流初创公司,我们正在2台AWS EC2计算机上运行12个Spring Boot微服务项目。一台计算机具有16GB RAM,其他计算机具有8GB RAM。我们为Prod和QA设置了相同的设置。在2种环境中,总共有48GB RAM计算机正在运行,这使我们每个月的成本很高。
平均每个服务消耗2GB的内存。
我们仅在白天运行质量检查服务器,以降低成本。
是否有更好的方法来减少每项服务的RAM使用量以减少总费用?
答案 0 :(得分:0)
我们限制了每个Spring服务在启动服务时占用的内存量。
这是我们使用的。当内存需要增长时,这也只会使堆增加20%,而在需要缩小时将释放40%的内存。
java -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:MaxRAM=400m -jar java-service.jar
现在理想情况下,每个春季服务占用的内存少于400MB,而之前的容量为2GB。