自动设置Java选项Xmx

自动设置Java选项Xmx,java,bash,Java,Bash,当我通过浏览器手动创建云服务器实例时,我必须选择可用内存。这些信息可用于服务器实例操作系统,在我的例子中是Ubuntu。在带有GUI的机器上,您可以在System Settings>Details中看到显示的值。理论上,在没有GUI的云服务器中,它应该是可用的 服务器将只执行一件事,即运行某个Java程序,因此它也可以使用所有物理内存 如何将该值输入bash脚本,以便自动设置Java-Xmx选项 编辑:当部署到一个新的服务器实例时,我上传一个run.sh脚本(以及其他所有文件,如.JAR文件),

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

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

如何将该值输入bash脚本,以便自动设置Java
-Xmx
选项


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

我想您正在搜索一个unix命令来获取内存,对吗

在sh脚本上尝试以下操作:

$ cat /proc/meminfo

它可以帮助你


font:

我想您正在搜索unix命令以获取内存,对吗

在sh脚本上尝试以下操作:

$ cat /proc/meminfo

它可以帮助你


font:

要查找可用内存,请使用
free
命令。使用
-m
选项以MB为单位查看结果。然后从第二列的第四个值中取下,这是当前的实际可用内存:

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

要查找可用内存,请使用
free
命令。使用
-m
选项以MB为单位查看结果。然后从第二列的第四个值中取下,这是当前的实际可用内存:

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

感谢Viswanath Lekshmanan

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

PHYSICALMEGA=`free -m | grep Mem | awk '{print $2}'`
注意分配给PHYSICALMEGA的值周围的反勾号。在bash中,backtick包含的内容由bash计算

同一个脚本可以以类似的方式调用Java

java Xmx="$PHYSICALMEGA" ...

感谢Viswanath Lekshmanan

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

PHYSICALMEGA=`free -m | grep Mem | awk '{print $2}'`
注意分配给PHYSICALMEGA的值周围的反勾号。在bash中,backtick包含的内容由bash计算

同一个脚本可以以类似的方式调用Java

java Xmx="$PHYSICALMEGA" ...

您可以设置_JAVA_OPTIONS环境变量。所以它将由所有java进程选择。您是像tomcat一样作为web服务器运行,还是作为一个独立的应用程序运行?我不熟悉tomcat。这只是一个我需要运行的Java程序。Karthikeyan,如果我理解正确,您的解决方案将需要自动化Java_选项,而不是Xmx。在这种情况下,这不是一个基本的解决方案。您可以尝试,
free | grep Mem | awk'{print$4}'
来获取可用内存量。您可以根据此命令的值设置JAVA_选项。您可以设置_JAVA_选项环境变量。所以它将由所有java进程选择。您是像tomcat一样作为web服务器运行,还是作为一个独立的应用程序运行?我不熟悉tomcat。这只是一个我需要运行的Java程序。Karthikeyan,如果我理解正确,您的解决方案将需要自动化Java_选项,而不是Xmx。在这种情况下,这不是一个基本的解决方案。您可以尝试,
free | grep Mem | awk'{print$4}'
来获取可用内存量。您可以根据此命令的值设置JAVA_选项