我一直在对一个新的弹性云实例提供商进行一些测试,我正在使用他们的免费套餐,它提供免费的Ubuntu,2GB的ram,还有其他更高的ram必须购买,也可以使用任何硬盘大小。目前我使用100gb用于驱动器和2gb内存,但我注意到即使没有在其上部署任何应用程序,glassfish也会崩溃。我知道glassfish需要至少1gb和一个推荐2gb的公平性能,我尝试在shell命令上执行 free -m 查看可用内存,我注意到服务器实例使用了大约1200mb的运行进程我没有启动,所以我用这个清理了缓存;
sudo echo 3 > /proc/sys/vm/drop_caches
我能够获得大约900mb以上,但后来服务器将运行其他进程, 并且增加ram内存使用量,当我在清除缓存后启动服务器时,它运行,但它会在5小时后崩溃,但只发现ram已被未知进程使用。 我在博客中读到一些文档,说明我的jvm崩溃堆内存,所以我配置了我的domain.xml jvm选项。
<jvm-options>-XX:MaxPermSize=192m</jvm-options>
<jvm-options>-XX:PermSize=64m</jvm-options>
<jvm-options>-XX:+CMSClassUnloadingEnabled</jvm-options>
<jvm-options>-Xmx512m</jvm-options>
<jvm-options>-Xms512m</jvm-options>
这是在2gb ram上运行的domain.xml中配置jvm选项的正确方法吗?我怎么能永久地杀死进程,这样我才能拥有至少1.8gb的内存来运行glassfish?