docker tomcat jvm 使用 visualVM监控
1. 建立基础镜像
FROM centosMAINTAINER fengjian <fengjian@senyint.com> ENV TZ "Asia/Shanghai" ENV TERM xtermENV JAVA_HOME /data/jdk ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /data/tomcat ENV CATALINA_BASE /data/tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binRUN rm /etc/yum.repos.d/* -rf ADD Centos-7.repo /etc/yum.repos.d/ ADD epel.repo /etc/yum.repos.d/ RUN yum clean all RUN yum -y install unzip net-tools bind-utils sysstat kde-l10n-Chinese telnet reinstall glibc-commonRUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 ENV LC_ALL "zh_CN.UTF-8" ADD localtime /etc/ ADD jdk.tar.gz /data ADD tomcat.tar.gz /data ADD profile /etc ADD 20-nproc.conf /etc/security/limits.d/ ADD limits.conf /etc/security/ RUN mkdir -p /data/webserver RUN mkdir -p /data/logs
2. tomcat/conf/catalina.sh 添加初始堆参数
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -server -Xms4096M -Xmx4096M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:-UseCounterDecay -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:MaxTenuringThreshold=6 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.rmi.port=18999 -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=192.168.200.10"
**其中 Djava.rmi.server.hostname= 192.168.200.10 为宿主机的IP地址。
3. 加入应用
FROM 192.168.200.10/source/tomcat8_jdk1.8_testMAINTAINER fengjian <fengjian@senyint.com.com>ADD webserver.tar.gz /data/webserver/EXPOSE 80 18999CMD ["/data/tomcat/bin/catalina.sh","run"]
4. 运行应用docker
docker run -d --name 1111 -p 50001:80 -p 18999:18999 192.168.200.10/source/gateway_test_jvm
5. 使用visualVM监控
二,
2. tomcat/conf/catalina.sh 添加初始堆参数
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -server -Xms4096M -Xmx4096M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:-UseCounterDecay -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:MaxTenuringThreshold=6 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.rmi.port=18999 -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=192.168.20.174"
**其中 Djava.rmi.server.hostname= 192.168.20.174 为宿主机的IP地址。
部署在k8s中,使用nodePort 指定端口,端口与jmxremote.port 相同
apiVersion: apps/v1beta2 kind: Deployment metadata:name: gatewaynamespace: senyint spec:selector:matchLabels:app: gatewayreplicas: 1template:metadata:labels:app: gatewayspec:nodeName: node1 #指定部署到 node1 上 containers:- name: gatewayimage: 192.168.200.10/source/gateway_test_jvmresources:limits:cpu: 2memory: 8192Mirequests:cpu: 100mmemory: 512Miports:- name: webportcontainerPort: 80- name: jvmportcontainerPort: 31999--- apiVersion: v1 kind: Service metadata:name: gatewaynamespace: senyint spec:type: NodePortports:- name: webportport: 80targetPort: 80protocol: TCP- name: jvmportport: 31999targetPort: 31999protocol: TCPnodePort: 31999selector:app: gateway
或者使用标签
kubectl label nodes node1 jvmmonitor=test
apiVersion: apps/v1beta2 kind: Deployment metadata:name: gatewaynamespace: senyint spec:selector:matchLabels:app: gatewayreplicas: 1template:metadata:labels:app: gatewayspec:nodeSelector:jvmmonitor: testcontainers:- name: gatewayimage: 192.168.200.10/source/gateway_test_jvmresources:limits:cpu: 2memory: 8192Mirequests:cpu: 100mmemory: 512Miports:- name: webportcontainerPort: 80- name: jvmportcontainerPort: 31999--- apiVersion: v1 kind: Service metadata:name: gatewaynamespace: senyint spec:type: NodePortports:- name: webportport: 80targetPort: 80protocol: TCP- name: jvmportport: 31999targetPort: 31999protocol: TCPnodePort: 31999selector:app: gateway
转载于:https://www.cnblogs.com/fengjian2016/p/9547790.html
docker tomcat jvm 使用 visualVM监控相关推荐
- java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...
- docker tomcat 多开 实例_Docker zabbix-agent 监控 docker tomcat 多实例
目录 监控方案概述 我们使用 zabbix-agent 的方式来监控 多个 tomcat 8.5.51 ,由于我们需要监控的是 Docker 容器里的 Tomcat ,而 zabbix 官方模板并不支 ...
- Visualvm监控远程机器上的Java程序
JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程. ...
- “金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?
春招指南之"性能调优":MySQL+Tomcat+JVM,还怕面试官的轰炸? 01 MySQL性能调优 1.1 MySQL性能调优问题有哪些?怎么学? 关于这个,给大家看一份学习大 ...
- visualvm监控
jvm 插件 地址:https://visualvm.github.io/archive/uc/8u20/updates.xml.gz linux 下 hostname -i 不能.为127.0 ...
- JVM之VisualVM安装使用以及dump文件分析
一.简介 VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监 ...
- centos8上docker tomcat容器访问报404解决方法
目录 [README] [1]docker安装tomcat [2]启动多个tomcat容器 [README] 1.本文记录了 访问docker tomcat容器报404的解决方法: 2.附带安装tom ...
- linux查看tomcat启动内存溢出,关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论-Fun言...
一:乱码问题1(前端通过url方式传递中文参数后台收到的是????) 此为Tomcat根目录-conif-server.xml 中 connectionTimeout="20000″ red ...
- 安装Java Visualvm监控堆内存和参数说明
安装Java Visualvm监控堆内存和参数说明 1.概述 这篇文章介绍使用Java Visualvm工具监控堆内存VisualGC插件的安装以及监控堆内存参数说明. 摘要 VisualGC插件安装 ...
最新文章
- java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path问题的解决
- 知识O2O:数字与文明的交汇点?
- ​DL_WITH_PY系统学习(第3章)
- android sdk 更新用的HOSTS
- [leedcode 52] N-Queens II
- TF下载量已超4600万!首届TensorFlow World大会,谷歌大牛Jeff Dean激情演讲
- 设计模式第三篇-装饰者模式
- 如何设置centos7的ip地址配置信息,让我的主机和它互Ping,以及远程登陆
- poj 1322 Chocolate (概率dp)
- es6箭头函数内部判断
- thinkphp5 数据库 链接 Connection
- 【啊哈C语言】【习题答案】【第一章】
- C++ template调试模板(6.6节)
- window MFC桌面下雪程序
- linux解压缩命令 gz,linux的gz解压缩命令是什么
- Java学习笔记Day2:流程控制
- properties解耦数据库参数和SQL参数的传递
- ABB机器人RobotLoad插件验证负载特性
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
- 音乐电台“淘漉音乐”