(2)设置Java虚拟机内存和线程池配置文件
启动脚本(bin/startup.sh或startup.bat)会自动根据根据计算机的可用内存自动计算分配给迁移程序
Java虚拟机内存(可用内存的三分之二),如果计算机上没有其它的应用或服务,可适当手动增大Java
虚拟机内存。
需要手动设置Java虚拟机内存时,修改启动脚本中的JAVA_MEMORY配置项即可。
Linux平台(startup.sh)
Windows平台(startup.bat)
#根据计算机可用内存大小(三分之二)计算分配给JAVA的内存
TOTAL_MEMORY=$(free -m | awk -F '[ :]+' 'NR==2{print $2}')
USED_MEMORY=$(free -m | awk -F '[ :]+' 'NR==2{print $3}')
AVAILABLE_MEMORY=$[TOTAL_MEMORY - USED_MEMORY]
FREE_MEMORY=$(free -m | awk -F '[ :]+' 'NR==2{print $4}')
#从空闲内存和可用内存中取大(操作系统会将空闲内存用作缓存)
if [[ ${FREE_MEMORY} -ge AVAILABLE_MEMORY ]];then
AVAILABLE_MEMORY=${FREE_MEMORY}
fi
if [[ ${AVAILABLE_MEMORY} -ge 36864 ]];then
JAVA_MEMORY=24G
elif [[ ${AVAILABLE_MEMORY} -ge 24576 ]];then
JAVA_MEMORY=16G
elif [[ ${AVAILABLE_MEMORY} -ge 12288 ]];then
JAVA_MEMORY=8G
elif [[ ${AVAILABLE_MEMORY} -ge 6144 ]];then
JAVA_MEMORY=4G
elif [[ ${AVAILABLE_MEMORY} -ge 3072 ]];then
JAVA_MEMORY=2G
else
JAVA_MEMORY=$[AVAILABLE_MEMORY / 2]
JAVA_MEMORY="${JAVA_MEMORY}M"
fi
#如果需要手动设置,把下面两行的注释(#)去掉后设置
#JAVA_MEMORY=12G
rem 根据可用内存大小(三分之二)计算分配给JAVA的内存及使用哪个线程配置文件
set /a JAVA_MEMORY=%FREE_MEMORY%
if %FREE_MEMORY% geq 36864 (
set JAVA_MEMORY=24G
) else if %FREE_MEMORY% geq 24576 (
set JAVA_MEMORY=16G
) else if %FREE_MEMORY% geq 12288 (
set JAVA_MEMORY=8G
) else if %FREE_MEMORY% geq 6144 (
set JAVA_MEMORY=4G
) else if %FREE_MEMORY% geq 3072 (
set JAVA_MEMORY=2G
) else (
set JAVA_MEMORY=%JAVA_MEMORY%M
)
rem 如果需要手动设置,把下面的注释(rem)去掉即可
rem set JAVA_MEMORY=13G
评论