Linux tomcat根据物理内存大小动态配置JVM内存

原理很简单,tomcat启动前会先执行bin目录下的setenv.sh脚本(默认不存在,需手动创建),在脚本中获取服务器内存进行动态分配即可

#!/usr/bin/env bash
MEM_SIZE="1" #默认1G
function get_mem_k_size_func(){
    local _memSize="$(vmstat -s -S K | awk 'NR==1{print $1}')"
    echo "${_memSize}"
}


function get_mem_m_size_func(){
    local _memSize="$(vmstat -s -S M | awk 'NR==1{print $1}')"
    echo "${_memSize}"
}

function get_mem_g_size_func(){
    local _memSize=$(($(get_mem_m_size_func)/1024))
    echo "${_memSize}"
}

echo "[TOMCAT] TBM_HOME=$TBM_HOME"
echo "[TOMCAT] runmode=$runmode"
AVI_MEM_SIZE=$(get_mem_g_size_func)
if [ ${AVI_MEM_SIZE} -gt 7 ]; then #大于7G内存设置为4G
	MEM_SIZE="4"
elif [ ${AVI_MEM_SIZE} -gt 4 ]; then #大于4G内存设置为2G
        MEM_SIZE="2"
fi
export JAVA_OPTS="-server -Xms512m -Xmx${MEM_SIZE}g -Xss256k -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseG1GC -Dcom.sun.management.jmxremote.port=9089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -DCmdbType=tbm"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值