zoukankan      html  css  js  c++  java
  • JVM常用调优参数以及linux服务器启动项目命令jvm参数调优案例

    我们知道:jvm的内存存储以及内存分配,主要集中在方法区、堆。针对这两块,给出的调优参数如下:

     

    一:调优参数初始化堆大小(有的叫jvm内存): -Xms256M //256M指的是具体大小,初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配内存

    最大堆大小(有的叫jvm内存):    -Xmx256M  //初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配内存

    年轻代大小: -Xmn512M //设置堆里面的年轻代大小。整个JVM内存的大小=年轻代+老年代+永久代(jdk1.8之后叫元空间)。永久代一般固定大小64M。所以增大年轻代,减小老年代大小。此值对系统性能影响较大。Sun推荐配置为整个堆的3/8
    元空间初始大小: -XX:MatespaceSize=100M //该值是设置方法区的元空间初始化大小,该值越大,触发GC时间就越晚。

    元空间内存最大值: -XX:MaxMatespaceSize=100M //该值是设置方法区的元空间最大值,如果不设置,默认是系统的 内存大小,设置了,可以限制元空间无限的使用服务器内存,影响其他程序。

    堆栈信息: -XX:OmitStackTraceInFastThrow //这个是用来解决重复异常不打印堆信息的设置。设置了,便会重复打印堆信息



    二:用于启动java的jar包服务的linux命令(后台启动)

    nohup java -server -Xms256M -Xmx256M -Xmn512M -XX:MatespaceSize=64M -XX:MaxMatespaceSize=100M -XX:OmintSackTraceInFastThrow -jar XXX.jar --spring.config.loacal=/xxpath1/xxpath2/ --logging.config=/xxpath1/logback.xml > ${logpath} 2 > &1 &

    优化2:提取中间变量来替代jvm的调优参数:
    
    
    # `pwd` 执行系统命令并获得结果
    BASE_PATH=`pwd`

    # 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
    # 如果指定的是目录,spring则会读取目录中的所有配置文件
    CONFIG_DIR=${BASE_PATH}"/config/"
    # 项目日志输出绝对路径
    LOG_DIR=${BASE_PATH}"/logs"
    LOG_FILE="${APPLICATION}.log"
    LOG_PATH="${LOG_DIR}/${LOG_FILE}"
    JAVA_OPT="-server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

    所以完整命令(注意你的系统是否识别nohup命令,如果不识别,缺少安装插件,网上搜 linux nohup即可):
    nohup java ${JAVA_OPT} -jar XXX.jar --spring.config.location=${CONFIG_DIR} --logging.config=${CONFIG_DIR}logback.xml > ${LOG_PATH} 2>&1 &
  • 相关阅读:
    基础:按值传递引用类型,按引用传递引用类新 细说并沉淀
    抽象与具体
    EXTJS 零星记录 VS2008中EXTJS智能提示插件
    javascript 与 coffescript来回转换:http://js2coffee.org/
    一个冒号引发的血案
    我基本上差不多做过了coffescript所做的事
    javascript的闭包中保存的是引用与循环中事件函数处理
    用webstorm调试coffeescript
    coffeescript 下的构造函数中如何使用return语句?
    coffeescript中的forin和forof
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/15074312.html
Copyright © 2011-2022 走看看