JVM参数调整实例--1
近期在进行一个项目的性能调优, 目标是支撑 1000 的并发数;
web容器:apache2+tomcat6
jvm:jdk6 linux x64
程序:status2+spring+ibatis
缓存:memcache
服务器:4颗双核cup 8G内存
由于本项目是网站项目只做展示用, 对时时性没要求, 做了几乎所有对象的缓存, memcache也在本机
测试一:
设置tomcat内存 CATALINA_OPTS="-Xms1024m -Xmx1024m -Xmn256m",然后使用apache ab 测试;
ab -c 500 -n 5000 url
使用 Jprofiler6 查看运行状况;主要看了内存, jvm线程, cpu 和 CG这几项
注:对 Jprofiler 使用不熟悉,初次使用, 有些数据记不太清了
内存:增长非常快, 主要是char[ ]非常高, 300-500M
jvm线程:运行线程(runnable) 在 460-500之间, 锁定线程(blocking)在 10 和 500左右跳动 , Net I/O 在 200左右, waiting 在几十左右
cpu:占用率最高的是 ognl 的getValue
cg:年轻代非常的频繁, 老年代几乎占满, cg非常频繁, cpu消耗80%左右
在使用ab压力的时候, 同时使用ie打开页面,不能访问,出现 502 错误, tomcat控制台频繁报(org.apache.jk.common.ChannelSocket processConnection
WARNING: processCallbacks status 2
)