当我通过浏览器手动创建云服务器实例时,我必须选择可用的内存。这些信息可供服务器实例操作系统使用,在我的例子中是Ubuntu。在具有GUI的计算机上,您可以看到System Settings > Details
中显示的值。在没有GUI的云服务器中,它应该以某种方式在理论上可用。
服务器只执行一件事,即运行某个Java程序,因此它也可以使用所有物理内存。
如何将此值转换为bash脚本,以便我可以自动设置Java -Xmx
选项?
编辑:部署到新服务器实例时,我上传将在服务器上使用的run.sh
脚本(以及其他所有内容,如.JAR文件)。 run.sh
脚本应该使用Xmx值,该值是机器的物理内存,应该自动确定该值。
答案 0 :(得分:0)
我认为你正在寻找一个unix命令来获取内存,对吗?
在sh脚本上试试这个:
$ cat /proc/meminfo
或
$ less /proc/meminfo
或
$ more /proc/meminfo
或
$ egrep --color 'Mem|Cache|Swap' /proc/meminfo
它可以帮到你!
答案 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" ...