万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • 大纲

  • 走近Java

  • 内存与垃圾回收

  • 字节码与类加载

  • 性能监控与调优

  • 监控与性能调优案例

    • JVM监控与性能调优案例概述
    • Tomcat堆溢出分析
    • 堆溢出
    • 方法区溢出
    • GC overhead limit exceeded
    • 线程溢出
    • 调整堆大小提高服务的吞吐量
      • 修改Tomcat JVM配置
      • 初始配置
      • 优化配置
    • JVM优化之JIT优化
    • 合理配置堆内存
    • CPU占用很高排查方案
    • G1并发执行的线程数对性能的影响
    • 调整垃圾回收器提高服务的吞吐量
    • 日均百万级订单交易系统如何设置JVM参数
    • 内存泄漏与内存溢出
  • Java虚拟机
  • 监控与性能调优案例
2022-03-18
目录

调整堆大小提高服务的吞吐量

# 调整堆大小提高服务的吞吐量

使用Tomcat 8.5.66 测试调整堆大小提高服务的吞吐量。

Jemeter配置:线程数50,Ramp-Up时间1秒,循环次数1000

# 修改Tomcat JVM配置

生产环境下,Tomcat并不建议直接在catalina.sh里配置变量,而是写在与catalina同级目录(bin目录)下的setenv.sh里。

perf_case1_1.png

所以如果我们想要修改jvm的内存配置,那么我们就需要修改setenv.sh文件。(默认没有,需新建一个setenv.sh)

touch setenv.sh
chmod +7 setenv.sh

# 初始配置

在setenv.sh文件中写入(大小根据自己情况修改):

export CATALINA_OPTS="$CATALINA_OPTS -Xms20m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:SurvivorRatio=8"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx20m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParallelGC"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDetails"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MetaspaceSize=64m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDateStamps"
export CATALINA_OPTS="$CATALINA_OPTS -Xloggc:/home/wenwl/apache-tomcat-8.5.66/logs/gc.log"

分别进行了三次压测,通过jstat指令或gc.log发现每次存在大量的Full GC,吞吐量是(1909.8/sec),查看一下我们Jmeter汇总报告:

perf_case1_2.png

perf_case1_3.png

# 优化配置

修改堆空间初始化大小和最大内存:

export CATALINA_OPTS="$CATALINA_OPTS -Xms80m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx80m"

分别再进行了三次压测,通过jstat指令或gc.log发现Full GC明显减少,吞吐量明显上升(2957.6/sec),查看一下我们Jmeter汇总报告:

perf_case1_4.png

perf_case1_5.png

#JVM监控与性能调优案例
上次更新: 5/28/2023, 10:57:53 PM
JVM优化之JIT优化

JVM优化之JIT优化→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式