jvm 性能优化相关

1. 生产环境性能检测工具 TProFiler

2. 性能瓶颈可能的原因

2.1 每个线程都需要创建的临时对象,能改成静态对象就改成静态对象用来复用,否则尽量缩短生命周期

2.2 使用 Spotlight 查看并发压测时的 Weblogic 所在的 Linux 服务器

2.3 Spotlight 查看数据库服务器各项性能指标

2.4 线程死锁、等待的问题 用jdk的JStack

  • 该拉取快照的服务器时间
  • JVM 版本
  • 以线程 ID(即 tid)升序依次列出当前进程中每个线程的调用栈
  • 死锁(如果有的话)
  • 阻塞锁链
  • 打开的锁链
  • 监视器解锁情况跟踪

2.5 tla空间的调整 可能是 TLA 空间不足引起。TLA 是 thread local area 的缩写,是每个线程私有的空间,所以在多线程环境下 TLA 带来的性能提升是显而易见的。如果大部分线程的需要分配的对象都较大,可以考虑提高 TLA 空间,因为这样更大的对象可以在 TLA 中进行分配,这样就不用担心和其它线程的同步问题了。但这个也不可以调的太大,否则也会带来一些问题,比如会带来更多内存碎片、更加频繁的垃圾搜集。
TLA 默认最小大小 2 KB,默认首选大小 16 KB – 256 KB (取决于新生代分区大小)。这里我们调整 TLA 空间大小为最小 32 KB,首选 1024 KB,JVM 启动参数中加入:
-XXtlaSize:min=32k,preferred=1024k

2.6 服务堆内存太小

2.7 找到进程中占用 CPU 较高的那些线程

参考:jvm 性能调优实战之: 一次系统性能瓶颈的寻找过程

猜你喜欢

转载自www.cnblogs.com/li-mzx/p/9828882.html
今日推荐