zoukankan      html  css  js  c++  java
  • Tomcat部署及性能检查

    1:启动窗口乱码,默认都是UTF-8的,但是控制台是GBK的,要保持一致
    打开tomcat目录下的conf/目录下logging.properties
    找到
    java.util.logging.ConsoleHandler.encoding = utf-8这行
    更改为
    java.util.logging.ConsoleHandler.encoding = GBK

    2:启动时候报这样的警告:
    警告 [main] org.apache.catalina.webresources.Cache.getResource
    无法将位于[/WEB-INF/classes/templates/framework/help/helpinfo.html]的资源添加到Web应用程序[/zhfx]的缓存中,
    因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。
    解决办法:
    在 /conf/context.xml 的 </Context>前添加以下内容(大小默认是1024,单位是KB):
    <Resources cachingAllowed="true" cacheMaxSize="100000" />

    3:tomcat项目管理页面
    conf omcat-users.xml文件
    增加配置
    <role rolename="manager-gui"/>
    <user username="admin" password="123456" roles="manager-gui"/>
    登录8080端口页面,点击manager webapp输入账号密码进入管理页面

    4:设置jvm参数:
    bincatalina.bat文件打开
    262行左右,set JPDA= 下面一行添加

    set JAVA_OPTS=-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=500m -XX:MaxPermSize=500m -Djava.awt.headless=true -XX:+PrintGCDetails


    参数解释:
    -Xms表示JVM Heap(堆内存)最小尺寸128MB,初始分配
    -Xmx表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配
    PermSizeMaxPermSize指明虚拟机为java永久生成对象(Permanate generation)
    如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中
    NewSize/MaxNewSize:定义YOUNG段的尺寸,
    NewSize为JVM启动时YOUNG的内存大小(young内存为堆中的新生代,保存刚实列化的对象);
    MaxNewSize为最大可占用的YOUNG内存大小。

    参数如果不理解,可以参考我转载的一篇博客,写的很详细:https://www.cnblogs.com/grasslucky/p/10900285.html

    5:注册为windows服务

    打开cmd窗口,window10用户记得用管理员权限打开,上次被坑了,进入tomcat下名的bin目录,查看service.bat文件是否存在,输入命令 service.bat install  ‘服务名’

    服务名可写可不写,然后看服务管理器,看是否添加好了,添加好了的话,进入属性设置为自动,这样如果服务器挂了也会自己启动,bin目录下启动tomcat9.exe,点击启动,ok。

    通过jmap性能监控:

    概述:命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

    命令:jmap -help:帮助信息

    命令:jmap -heap pid
    描述:显示Java堆详细信息

    打印一个堆的信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息

    显示参数详解:

    Heap Configuration:       //堆内存初始化配置
             MinHeapFreeRatio=40     //对应jvm启动参数-XX:MinHeapFreeRatio设置JVM堆最小空闲比率(default 40)
             MaxHeapFreeRatio=70  //对应jvm启动参数 -XX:MaxHeapFreeRatio设置JVM堆最大空闲比率(default 70)
             MaxHeapSize=512.0MB  //对应jvm启动参数-XX:MaxHeapSize=设置JVM堆的最大大小
             NewSize  = 1.0MB          //对应jvm启动参数-XX:NewSize=设置JVM堆的‘新生代’的默认大小
             MaxNewSize =4095MB   //对应jvm启动参数-XX:MaxNewSize=设置JVM堆的‘新生代’的最大大小
             OldSize  = 4.0MB            //对应jvm启动参数-XX:OldSize=<value>:设置JVM堆的‘老生代’的大小
             NewRatio  = 8         //对应jvm启动参数-XX:NewRatio=:‘新生代’和‘老生代’的大小比率
             SurvivorRatio = 8    //对应jvm启动参数-XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值
              PermSize= 16.0MB       //对应jvm启动参数-XX:PermSize=<value>:设置JVM堆的‘永生代’的初始大小
              MaxPermSize=64.0MB  //对应jvm启动参数-XX:MaxPermSize=<value>:设置JVM堆的‘永生代’的最大大小
     
     
              Heap Usage:               //堆内存分步
              PS Young Generation
              Eden Space:          //Eden区内存分布
                capacity = 20381696 (19.4375MB)  //Eden区总容量
                used     = 20370032 (19.426376342773438MB)  //Eden区已使用
                free     = 11664 (0.0111236572265625MB)  //Eden区剩余容量
                99.94277218147106% used  //Eden区使用比率
             From Space:        //其中一个Survivor区的内存分布
                 capacity = 8519680 (8.125MB)
                 used     = 32768 (0.03125MB)
                 free     = 8486912 (8.09375MB)
                 0.38461538461538464% used
            To Space:            //另一个Survivor区的内存分布
                capacity = 9306112 (8.875MB)
                used     = 0 (0.0MB)
                free     = 9306112 (8.875MB)
                0.0% used
            PS Old Generation  //当前的Old区内存分布
                capacity = 366280704 (349.3125MB)
                used     = 322179848 (307.25464630126953MB)
                free     = 44100856 (42.05785369873047MB)
                87.95982001825573% used
            PS Perm Generation  //当前的 “永生代” 内存分布
                capacity = 3

    命令:jmap pid
    描述:查看进程的内存映像信息,类似 Solaris pmap 命令。

    使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称。这与Solaris的pmap工具比较相似。

    命令:jmap -histo:live pid
    描述:显示堆中对象的统计信息

    其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象。

    命令:jmap -clstats pid
    描述:打印类加载器信息

    -clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据
    打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。

    命令:jmap -finalizerinfo pid
    描述:打印等待终结的对象信息

    Number of objects pending for finalization: 0 说明当前F-QUEUE队列中并没有等待Fializer线程执行final

    学而不思则罔,思而不学则殆
  • 相关阅读:
    用JS + WCF打造轻量级WebPart
    提高WCF服务并发能力的简单处理办法
    利用JQuery实现更简单的Ajax跨域请求
    WCF Testing Tool(转)
    [转贴]一个有趣的布局
    [转贴].net中上传视频并将各种视频文件转换成.flv格式
    IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]
    [转贴]Castle 开发系列文章
    ie6,ie7,ff 的css兼容hack写法
    ExtJs学习笔记(23)ScriptTagProxy+XTemplate+WCF跨域取数据
  • 原文地址:https://www.cnblogs.com/linyu51/p/14839834.html
Copyright © 2011-2022 走看看