自动设置Java选项Xmx

时间:2016-03-10 08:05:15

标签: java bash

当我通过浏览器手动创建云服务器实例时,我必须选择可用的内存。这些信息可供服务器实例操作系统使用,在我的例子中是Ubuntu。在具有GUI的计算机上,您可以看到System Settings > Details中显示的值。在没有GUI的云服务器中,它应该以某种方式在理论上可用。

服务器只执行一件事,即运行某个Java程序,因此它也可以使用所有物理内存。

如何将此值转换为bash脚本,以便我可以自动设置Java -Xmx选项?

编辑:部署到新服务器实例时,我上传将在服务器上使用的run.sh脚本(以及其他所有内容,如.JAR文件)。 run.sh脚本应该使用Xmx值,该值是机器的物理内存,应该自动确定该值。

3 个答案:

答案 0 :(得分:0)

我认为你正在寻找一个unix命令来获取内存,对吗?

在sh脚本上试试这个:

$ cat /proc/meminfo

$ less /proc/meminfo

$ more /proc/meminfo

$ egrep --color 'Mem|Cache|Swap' /proc/meminfo

它可以帮到你!

font:http://www.cyberciti.biz/faq/linux-check-memory-usage/

答案 1 :(得分:0)

为了找到空闲内存使用free命令。使用-m选项以MB格式查看结果。然后从第二列第4个值获取,这是当前的实际可用内存:

 free -m | head -n 2 | tail -n 1 | awk '{print $4}'

答案 2 :(得分:0)

感谢Viswanath Lekshmanan ......

run.sh脚本中添加以下内容。

PHYSICALMEGA=`free -m | grep Mem | awk '{print $2}'`

请注意分配给PHYSICALMEGA的值的反引号。在bash中,通过bash评估反引号包含的内容。

相同的脚本可以以类似于此的方式调用Java ...

java Xmx="$PHYSICALMEGA" ...