JVM_性能优化案例:调整堆大小提高服务的吞吐量

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

修改tomcatJVM配置

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

初始配置

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

cpp 复制代码
export CATALINA_OPTS="$CATALINA_OPTS -Xms30m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:SurvivorRatio=8"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx30m"
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:/opt/module/apache-tomcat-8.5.88/logs"

查看日志

其中存在大量的Full GC日志,查看一下我们Jmeter汇总报告

发现触发了一次gc

接下来我们测试另外一组数据,增加初始化和最大内存:

cpp 复制代码
export CATALINA_OPTS="$CATALINA_OPTS -Xms120m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:SurvivorRatio=8"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx120m"
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:/opt/module/apache-tomcat-8.5.88/logs"

发现没有触发gc

相关推荐
Web3&Basketball16 小时前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器
python·性能优化·大模型·任务调度·成本优化·deepseek·推理优化
yunwei3717 小时前
eBPF 教程:追踪 CUDA GPU 操作
linux·后端·性能优化
天空之城--17 小时前
Flutter Drift 完全指南:从原理到实战
jvm·flutter·oracle
狼爷20 小时前
磁盘IO打满怎么办?我用5个真实案例,总结了这套可复用的排查方法论
后端·性能优化
xiaohua10091 天前
JVM内存优化-jemalloc
java·jvm
Escalating_xu1 天前
【mmap 进程间通信】从共享内存到跨进程唤醒:用互斥锁、条件变量控制多个进程
java·linux·开发语言·jvm
雪落漂泊1 天前
C++智能指针
开发语言·jvm·c++
落魄大学生之流水线上谋生计1 天前
JVM内存结构、垃圾回收算法与类加载机制详解
jvm·算法
wuminyu1 天前
Kafka配置TLS/SSL加密传输时零拷贝失效分析
java·linux·c语言·jvm·c++
hhzz1 天前
【OpenCV 入门到精通 05】核心操作与像素处理:ROI、运算与性能优化
人工智能·python·opencv·性能优化