問題描述:
服務器配置比較低,導致部署在docker里的微服務占用內(nèi)存太大部分本奎,就想調(diào)整下jvm參數(shù)優(yōu)化下,又網(wǎng)上很多調(diào)整JVM參數(shù)的方法不能用或者調(diào)整后不生效,參考多篇文章后總結(jié)一個方法。
推薦 使用解決方式2
解決方案1:
1、docker-compose.yml
里加上environment的配置,如下:
version : '2.1'
services:
one-service:
image: java:8
volumes:
- ./porject:/springboot
privileged: true
ports:
- "21273:80"
restart: always
container_name: onne-service
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS= #-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70
command:
- /bin/bash
- -c
- |
cd /springboot
java ${JAVA_OPTS} -jar spring-boot-1.0.jar
networks:
- public_network
2、執(zhí)行
docker-compose up -d one-service
啟動之后,查看是否啟動成功,可以執(zhí)行如下命令:
1)進入容器:docker exec -it 容器ID bash
2)直接輸入 top 命令,如顯示如下說明成功了:
1、如果沒有顯示JVM參數(shù),
執(zhí)行如下命令:
jps -v
如果JVM參數(shù)依然為默認參數(shù)的話就說明我們的配置沒有生效,我們需要使用解決方案2來處理。
解決方案2
1、在啟動類的位置新增一個文件: run.sh
vim run.sh
將如下內(nèi)容添加進去并保存文件
#!/bin/sh
java ${JAVA_OPTS} -jar spring-boot-1.0.jar
2、修改一下 docker-compose.yml
:
version : '2.1'
services:
one-service:
image: java:8
volumes:
- ./porject/dhis-base:/springboot
privileged: true
ports:
- "21273:80"
restart: always
container_name: onne-service
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS= #-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70
command:
- /bin/bash
- -c
- |
cd /springboot
exec ./run.sh #使用腳本的方式啟動項目,這樣啟動的話pid就不是1了
networks:
- public_network
PS: 如果啟動報沒有權限,給文件run.sh
賦權限,執(zhí)行如下:chmod -R 777 run.sh
2、執(zhí)行 docker-compose up -d one-service 再次啟動,進入容器:
在容器內(nèi)執(zhí)行:文章來源:http://www.zghlxwxcb.cn/news/detail-417316.html
jps -v
JVM參數(shù)已經(jīng)變成我們自己設置的參數(shù)了
PS:
JVM調(diào)優(yōu)常用命令去JVM調(diào)優(yōu)常用命令頁面查看。文章來源地址http://www.zghlxwxcb.cn/news/detail-417316.html
到了這里,關于docker-compose 調(diào)整JVM參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!