一、修改描述问价
manifest中添加jemalloc
yaml
autodeploy:
hulkos: centos7 #使用centos7镜像作为运行时基础镜像
tools:
mt_oraclejdk: 17
jemalloc:# 可以指定版本也可以什么都不写
targetDir: /opt/meituan/apps/waimai_service_productquery_server/work
run: sh deploy/run.sh
check: sh /opt/meituan/apps/waimai_service_productquery_server/work/deploy/check.sh
checkRetry: 70 #后面下掉,加默认值为1
checkInterval: 10s #后面下掉
二、脚本根据环境变量加载
run.sh-配置
powershell
JEMALLOC_ENV=''
if [[ -f /usr/lib64/libjemalloc.so.2 && "$JEMALLOC_ENABLED" == "true" ]]; then
JEMALLOC_ENV='env LD_PRELOAD=/usr/lib64/libjemalloc.so.2 MALLOC_CONF=background_thread:true,dirty_decay_ms:600000,muzzy_decay_ms:600000,metadata_thp:always'
echo "jemalloc 开启: LD_PRELOAD=/usr/lib64/libjemalloc.so.2 MALLOC_CONF=background_thread:true,dirty_decay_ms:600000,muzzy_decay_ms:600000,metadata_thp:always"
fi
run.sh-执行
- 注意 :$JEMALLOC_ENV 不要放在/usr/local/java17/bin/java后面,不然汇报env启动类找不到
powershell
exec $JEMALLOC_ENV /usr/local/java17/bin/java $VM_PARAM -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/xxx/logs/appkey.heaperr.log.`date "+%Y%m%d%H%M%S"` -Denvironment=$ENVIRONMENT -Xloggc:/var/xxx/logs/appkey.gc.log.`date "+%Y%m%d%H%M%S"` -Dapp.key=appkey -Dapp.host=$HOST_NAME -Dapp.ip=$HOST_IP -Dapp.port=9000 -Dfile.encoding=utf8 -Dworkdir=$WORKDIR -cp $WORKDIR/classes:`find $WORKDIR/lib -name "*.jar" -printf "%p:"` appkey.boot.Boot >> /var/sankuai/logs/$LOGFILE 2>&1