一、JVM
参数 | 作用 | 建议 |
---|---|---|
-server | 以服务端的模式运行 | 建议开启 |
-Xms | 最小堆内存, | 和-Xmx设置相同 |
-Xmx | 最大内存 | 建议可用内存的80% |
-XX:MetaspaceSize | 元空间初始值 | |
-XX:MaxMetaspaceSize | 元空间最大内存 | 默认无限 |
-XX:NeaRatio | 年轻代和老年代大小的壁纸,取值整数,默认是2 | 不要改 |
-XX:SurvivorRatio | Eden区Survivor区大小的比值,取值为整数,默认是8 | 不改 |
二、垃圾回收策略
指标:
1. 吞吐量:工作时间占总时间的百分比
2. 暂停时间:有垃圾回收导致的应用停止相应次数/时间
垃圾收集器:
1. 串行收集器(SerialCollector):单线程执行所有的垃圾回收工作,适用于单核CPU服务器
2. 并行收集器(ParallelCollector): 吞吐量收集器关注吞吐量,并行的方式执行年轻代的垃圾回收,降低垃圾回收的开销适用于多处理器或多线程硬件上运行的数据量较大的应用:工作线程在GC的 时候也会等待
3. 并发收集器(ConcurrentCollector):鬓发的方式执行大部分垃圾回收工作,缩短垃圾回收䣌暂停时间 工作线程和GC线程可以同时执行,但是不一定并行,也可能会交替进行,
4. GMS收集器,并发收集器中的一种 并发标记清除收集器
5. G1收集器 适用于大容量内存的多喝服务器,满足垃圾回收展厅时间目标的同时,以最大的可能性实现高吞吐量(1.9之后是默认的垃圾回收)
参数
参 | 描述 |
---|---|
-XX:+UseSerialGC | 启⽤串⾏收集器 |
-XX:+UseParallelGC | 启⽤并⾏垃圾收集器,配置了该选项,那么 -XX:+UseParallelOldGC默认启⽤ |
-XX:+UseParNewGC | 年轻代采⽤并⾏收集器,如果设置了 -XX:+UseConcMarkSweepGC选项,⾃动启⽤ |
-XX:ParallelGCThreads | 年轻代及⽼年代垃圾回收使⽤的线程数。默认值依赖于JVM使⽤的CPU个 |
-XX:+UseConcMarkSweepGC(CMS) | 对于⽼年代,启⽤CMS垃圾收集器。 当并⾏收集器⽆法满⾜应⽤的延迟需求是,推荐使⽤CMS或G1收集器。启⽤该选项后, -XX:+UseParNewGC⾃动启⽤ |
-XX:+UseG1GC | 启⽤G1收集器。 G1是服务器类型的收集器, ⽤于多核、⼤内存的机器。它在保持⾼吞吐量的情况下,⾼概率满⾜GC暂停时间的⽬标 |
三、tomcat调优
tomcat自身相关的调优
-
调整tomcat的线程池
-
调整tomcat的连机器
参数 说明 maxConnections 最⼤连接数,当到达该值后,服务器接收但不会处理更多的请求, 额外的请求将会阻塞直到连接数低于maxConnections 。可通过ulimit -a 查看服务器限制。对于CPU要求更⾼(计算密集型)时,建议不要配置过⼤ ; 对于CPU要求不是特别⾼时,建议配置在2000左右(受服务器性能影响)。 当然这个需要服务器硬件的⽀持 maxThreads 最⼤线程数,需要根据服务器的硬件情况,进⾏⼀个合理的设置 acceptCount 最⼤排队等待数,当服务器接收的请求数量到达maxConnections ,此时Tomcat会将后⾯的请求,存放在任务队列中进⾏排序, acceptCount指的就是任务队列中排队等待的请求数 。 ⼀台Tomcat的最⼤的请求处理数量是maxConnections+acceptCount -
禁用AJP连接器
-
调整IO模式
- Tomcat8之前的版本默认使⽤BIO(阻塞式IO),对于每⼀个请求都要创建⼀个线程来处理,不适合⾼并发;Tomcat8以后的版本默认使⽤NIO模式(⾮阻塞式IO)
- 修改protpcol修改即可
网友评论