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监控相关推荐

  1. java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

  2. docker tomcat 多开 实例_Docker zabbix-agent 监控 docker tomcat 多实例

    目录 监控方案概述 我们使用 zabbix-agent 的方式来监控 多个 tomcat 8.5.51 ,由于我们需要监控的是 Docker 容器里的 Tomcat ,而 zabbix 官方模板并不支 ...

  3. Visualvm监控远程机器上的Java程序

    JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程. ...

  4. “金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?

    春招指南之"性能调优":MySQL+Tomcat+JVM,还怕面试官的轰炸? 01 MySQL性能调优 1.1 MySQL性能调优问题有哪些?怎么学? 关于这个,给大家看一份学习大 ...

  5. visualvm监控

    jvm 插件  地址:https://visualvm.github.io/archive/uc/8u20/updates.xml.gz linux 下  hostname -i  不能.为127.0 ...

  6. JVM之VisualVM安装使用以及dump文件分析

    一.简介 VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监 ...

  7. centos8上docker tomcat容器访问报404解决方法

    目录 [README] [1]docker安装tomcat [2]启动多个tomcat容器 [README] 1.本文记录了 访问docker tomcat容器报404的解决方法: 2.附带安装tom ...

  8. linux查看tomcat启动内存溢出,关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论-Fun言...

    一:乱码问题1(前端通过url方式传递中文参数后台收到的是????) 此为Tomcat根目录-conif-server.xml 中 connectionTimeout="20000″ red ...

  9. 安装Java Visualvm监控堆内存和参数说明

    安装Java Visualvm监控堆内存和参数说明 1.概述 这篇文章介绍使用Java Visualvm工具监控堆内存VisualGC插件的安装以及监控堆内存参数说明. 摘要 VisualGC插件安装 ...

最新文章

  1. java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path问题的解决
  2. 知识O2O:数字与文明的交汇点?
  3. ​DL_WITH_PY系统学习(第3章)
  4. android sdk 更新用的HOSTS
  5. [leedcode 52] N-Queens II
  6. TF下载量已超4600万!首届TensorFlow World大会,谷歌大牛Jeff Dean激情演讲
  7. 设计模式第三篇-装饰者模式
  8. 如何设置centos7的ip地址配置信息,让我的主机和它互Ping,以及远程登陆
  9. poj 1322 Chocolate (概率dp)
  10. es6箭头函数内部判断
  11. thinkphp5 数据库 链接 Connection
  12. 【啊哈C语言】【习题答案】【第一章】
  13. C++ template调试模板(6.6节)
  14. window MFC桌面下雪程序
  15. linux解压缩命令 gz,linux的gz解压缩命令是什么
  16. Java学习笔记Day2:流程控制
  17. properties解耦数据库参数和SQL参数的传递
  18. ABB机器人RobotLoad插件验证负载特性
  19. 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
  20. 音乐电台“淘漉音乐”

热门文章

  1. pl sql 工具insert into 中文 后, select为乱码
  2. 程序员,别了校园入了江湖
  3. 《剑指offer》把字符串转为整数
  4. 《剑指offer》扑克牌顺序
  5. ReactNative-WebView组件
  6. 用Apache Ivy实现项目里的依赖管理
  7. activity(流程引擎)从零入门到实战学习
  8. OCPC 广告算法在凤凰新媒体的实践探索
  9. JVM性能调优实践:G1 垃圾收集器介绍篇
  10. 一步一步理解GB、GBDT、xgboost