新聞中心
一、背景
系統(tǒng)性能的衡量指標(biāo),主要是響應(yīng)時間和吞吐量。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、饒河ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的饒河網(wǎng)站制作公司
1)響應(yīng)時間:執(zhí)行某個操作的耗時;
2) 吞吐量:系統(tǒng)在給定時間內(nèi)能夠支持的事務(wù)數(shù)量,單位為TPS(Transactions PerSecond的縮寫,也就是事務(wù)數(shù)/秒,一個事務(wù)是指一個客戶機(jī)向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程。
Tomcat優(yōu)化從兩個方面進(jìn)行
1)JVM虛擬機(jī)優(yōu)化(優(yōu)化內(nèi)存模型)
2)Tomcat自身配置的優(yōu)化(比如是否使用了共享線程池?IO模型?)
學(xué)習(xí)優(yōu)化的原則提供給大家優(yōu)化思路,沒有說有明確的參數(shù)值大家直接去使用,必須根據(jù)自己的真實(shí)生產(chǎn)環(huán)境來進(jìn)行調(diào)整,調(diào)優(yōu)是一個過程。
二、Jvm虛擬機(jī)運(yùn)行優(yōu)化
Java 虛擬機(jī)的運(yùn)行優(yōu)化主要是內(nèi)存分配和垃圾回收策略的優(yōu)化:
- 內(nèi)存直接影響服務(wù)的運(yùn)行效率和吞吐量
- 垃圾回收機(jī)制會不同程度地導(dǎo)致程序運(yùn)行中斷(垃圾回收策略不同,垃圾回收次數(shù)和回收效率都是不同的
1) Java 虛擬機(jī)內(nèi)存模型和相關(guān)參數(shù)
2) 垃圾回收(GC)策略垃圾回收性能指標(biāo)吞吐量:
- 工作時間(排除GC時間)占總時間的百分比, 工作時間并不僅是程序運(yùn)行的時間,還包含內(nèi)存分配時間。
- 暫停時間:由垃圾回收導(dǎo)致的應(yīng)用程序停止響應(yīng)次數(shù)/時間。
垃圾收集器
- 串行收集器(Serial Collector)
單線程執(zhí)行所有的垃圾回收工作, 適用于單核CPU服務(wù)器工作進(jìn)程
工作進(jìn)程-----|(單線程)垃圾回收線程進(jìn)行垃圾收集|---工作進(jìn)程繼續(xù)
- 并行收集器(Parallel Collector)
工作進(jìn)程-----|(多線程)垃圾回收線程進(jìn)行垃圾收集|---工作進(jìn)程繼續(xù)
又稱為吞吐量收集器(關(guān)注吞吐量), 以并行的方式執(zhí)行年輕代的垃圾回收, 該方式可以顯著降低垃圾回收的開銷(指多條垃圾收集線程并行工作,但此時用戶線程仍然處于等待狀態(tài))。
適用于多處理器或多線程硬件上運(yùn)行的數(shù)據(jù)量較大的應(yīng)
- 并發(fā)收集器(Concurrent Collector)
以并發(fā)的方式執(zhí)行大部分垃圾回收工作,以縮短垃圾回收的暫停時間。
適用于那些響應(yīng)時間優(yōu)先于吞吐量的應(yīng)用, 因?yàn)樵撌占麟m然最小化了暫停時間(指用戶線程與垃圾收集線程同時執(zhí)行,但不一定是并行的,可能會交替進(jìn)行), 但是會降低應(yīng)用程序的性能
- CMS收集器(Concurrent Mark Sweep Collector)
并發(fā)標(biāo)記清除收集器, 適用于那些更愿意縮短垃圾回收暫停時間并且負(fù)擔(dān)的起與垃圾回收共享處理器資源的應(yīng)用
- G1收集器(Garbage-First Garbage Collector)
適用于大容量內(nèi)存的多核服務(wù)器, 可以在滿足垃圾回收暫停時間目標(biāo)的同時, 以最大可能性實(shí)現(xiàn)高吞吐量( JDK1.7之后)
三、Tomcat配置調(diào)優(yōu)
- 調(diào)整tomcat線程池
- 調(diào)整tomcat的連接器
調(diào)整tomcat/conf/server.xml 中關(guān)于鏈接器的配置可以提升應(yīng)用服務(wù)器的性能
- 禁用 AJP 連接器
- 調(diào)整 IO 模式
Tomcat8之前的版本默認(rèn)使用BIO(阻塞式IO),對于每一個請求都要創(chuàng)建一個線程來處理,不適合高并發(fā);Tomcat8以后的版本默認(rèn)使用NIO模式(非阻塞式IO)
當(dāng)Tomcat并發(fā)性能有較高要求或者出現(xiàn)瓶頸時,我們可以嘗試使用APR模式,APR(Apache PortableRuntime)是從操作系統(tǒng)級別解決異步IO問題,使用時需要在操作系統(tǒng)上安裝APR和Native(因?yàn)锳PR原理是使用使用JNI技術(shù)調(diào)用操作系統(tǒng)底層的IO接口)
- 動靜分離
可以使用Nginx+Tomcat相結(jié)合的部署方案,Nginx負(fù)責(zé)靜態(tài)資源訪問,Tomcat負(fù)責(zé)Jsp等動態(tài)資源訪問處理(因?yàn)門omcat不擅?處理靜態(tài)資源)
網(wǎng)站欄目:Tomcat:性能優(yōu)化策略
標(biāo)題URL:http://www.dlmjj.cn/article/dhjejoh.html


咨詢
建站咨詢
