前言
在我们性能测试过程中,我们常常需要分别设定几组配置对应用模块进行性能测试,以作对比。这样的目的在于探究应用运行的瓶颈。其中,我们测试的时候可以通过修改容器分配的内存空间进行测试。
内存修改步骤
1.删除docker中的容器
docker rm [CONTAINER ID]
2.通过docker run
利用image
进行启动容器(构建容器并启动)
docker run
参数可以通过 runlike
命令查看docker运行参数runlike new-payment
docker run --net=host -d -e JAVA_OPTS="-Xms256m -Xmx512m -javaagent:/data/share/agent/skywalking-agent.jar -Dskywalking_config=/data/share/agent/config/agent.config" -e JAVA_JAR_OPTS="-Djeesuite.configcenter.profile=test98" -e MachineHostName=all-service-192-168-1-98.test98.ayg --cap-add=SYS_PTRACE -v /dockerlogs/balance-web:/logs -v /data/docker_uploaddata/balance-web:/data/upload/ --volumes-from ayg_fileshare --restart=unless-stopped --add-host config.iyuangong.net:192.168.1.98 --name balance-web --hostname="balance-web-all-service-192-168-1-98.test98.ayg" 192.168.1.196:5000/balance-web:latest
修改内存的参数在JAVA_OPTS="-Xms256m -Xmx512m,对于其他的应用将根据其他的应用来决定
3.构建成功后通过docker logs
查看docker构建情况
docker logs -f [CONTAINER ID]
至此修改内容操作已完成
4.确认修改内存是否成功可通过一下方式查看
进入容器,用export
命令查看环境变量
docker exec -it [CONTAINER ID] bash
export命令查看环境信息
jvisualvm-监听docker
监听docker容器中的jvm需要配置的参数
方法:
1.runlike new-payment
查看应用的运行参数
2.修改应用运行参数
加入监听参数
-Djava.rmi.server.hostname=ip
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.rmi.port=11199
-Dcom.sun.management.jmxremote.port=1199
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
加入端口映射(根据需求自定义映射端口)
- -p指定要映射的端口,一个指定端口上只可以绑定一个容器
- -P将容器内部开放的网络端口随机映射到宿主机的一个端口上
hostport:containerport #指定宿主机port、指定容器port
-p 11199:11199 -p 10086:10086
参考内容:性能测试 - 性能监控之我见