zoukankan      html  css  js  c++  java
  • docker tomcat jvm 使用 visualVM监控

    1.  建立基础镜像

    FROM centos
    
    MAINTAINER fengjian <fengjian@senyint.com>
    ENV TZ "Asia/Shanghai"
    ENV TERM xterm
    
    ENV 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/bin
    
    RUN 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-common
    
    RUN  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_test
    
    MAINTAINER fengjian <fengjian@senyint.com.com>
    
    ADD webserver.tar.gz /data/webserver/
    
    EXPOSE 80 18999
    
    CMD ["/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: gateway
      namespace: senyint
    spec:
      selector:
        matchLabels:
          app: gateway
      replicas: 1
      template:
        metadata:
          labels:
            app: gateway
        spec:
          nodeName: node1   #指定部署到 node1 上 
          containers:
          - name: gateway
            image: 192.168.200.10/source/gateway_test_jvm
            resources:
              limits:
                cpu: 2
                memory: 8192Mi
              requests:
                cpu: 100m
                memory: 512Mi
            ports:
            - name: webport
              containerPort: 80
            - name: jvmport
              containerPort: 31999
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: gateway
      namespace: senyint
    spec:
      type: NodePort
      ports:
        - name: webport
          port: 80
          targetPort: 80
          protocol: TCP
        - name: jvmport
          port: 31999
          targetPort: 31999
          protocol: TCP
          nodePort: 31999
      selector:
        app: gateway

    或者使用标签

    kubectl label nodes  node1    jvmmonitor=test

    apiVersion: apps/v1beta2
    kind: Deployment
    metadata:
      name: gateway
      namespace: senyint
    spec:
      selector:
        matchLabels:
          app: gateway
      replicas: 1
      template:
        metadata:
          labels:
            app: gateway
        spec:
          nodeSelector:
            jvmmonitor: test
          containers:
          - name: gateway
            image: 192.168.200.10/source/gateway_test_jvm
            resources:
              limits:
                cpu: 2
                memory: 8192Mi
              requests:
                cpu: 100m
                memory: 512Mi
            ports:
            - name: webport
              containerPort: 80
            - name: jvmport
              containerPort: 31999
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: gateway
      namespace: senyint
    spec:
      type: NodePort
      ports:
        - name: webport
          port: 80
          targetPort: 80
          protocol: TCP
        - name: jvmport
          port: 31999
          targetPort: 31999
          protocol: TCP
          nodePort: 31999
      selector:
        app: gateway

  • 相关阅读:
    366. Find Leaves of Binary Tree输出层数相同的叶子节点
    716. Max Stack实现一个最大stack
    515. Find Largest Value in Each Tree Row查找一行中的最大值
    364. Nested List Weight Sum II 大小反向的括号加权求和
    156. Binary Tree Upside Down反转二叉树
    698. Partition to K Equal Sum Subsets 数组分成和相同的k组
    244. Shortest Word Distance II 实现数组中的最短距离单词
    187. Repeated DNA Sequences重复的DNA子串序列
    java之hibernate之基于主键的双向一对一关联映射
    java之hibernate之基于主键的单向一对一关联映射
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/9547790.html
Copyright © 2011-2022 走看看