系統(tǒng)性能優(yōu)化

一般調(diào)優(yōu)的基本過程

1.明了需要調(diào)優(yōu)的系統(tǒng)架構(gòu)

2.設(shè)定性能調(diào)優(yōu)的目標

3.明了目標當前的性能情況

4.找出目前的性能瓶頸的所在

5.解決引起性能瓶頸的根本問題

6.重復(fù)以上過程直到達到設(shè)定目標性能為止

性能指標

崩潰點:同時多少并發(fā)的時候,服務(wù)器Down掉?

吞吐量:多少人一起來,都沒問題尺锚?

并發(fā)數(shù):每秒能處理多少人猪腕?

響應(yīng)時間:每人需要等待的時間多長生均?

調(diào)優(yōu)點:

硬件配置優(yōu)化:

虛擬機
物理機
CPU
內(nèi)存
磁盤IO
網(wǎng)絡(luò)

操作系統(tǒng)優(yōu)化

JVM參數(shù)優(yōu)化

-Xms:設(shè)置jvm內(nèi)存的初始大小

-Xmx:設(shè)置jvm內(nèi)存的最大值

-Xmn:設(shè)置新域的大猩莼搿(這個似乎只對 jdk1.4來說是有效的,后來就廢棄了)

-Xss:設(shè)置每個線程的堆棧大小(也就是說,在相同物理內(nèi)存下怕吴,減小這個值能生成更多的線程)

-XX:NewRatio :設(shè)置新域與舊域之比,如-XX:NewRatio = 4就表示新域與舊域之比為1:4

-XX:NewSize:設(shè)置新域的初始值

-XX:MaxNewSize :設(shè)置新域的最大值

-XX:PermSize:設(shè)置永久域的初始值

-XX:MaxPermSize:設(shè)置永久域的最大值

-XX:SurvivorRatio=n:設(shè)置新域中Eden區(qū)與兩個Survivor區(qū)的比值县踢。(Eden區(qū)主要是用來存放新生的對象转绷,而兩個 Survivor區(qū)則用來存放每次垃圾回收后存活下來的對象)

容器優(yōu)化

  • 線程池
    <jetty>

線程池線程資源大小確定了服務(wù)器的服務(wù)能力
默認大小不一定能滿足生產(chǎn)環(huán)境
線程分配方式?jīng)Q定了服務(wù)器的資源利用效率
固定線程數(shù)處理多任務(wù),代表:JDK的ThreadPoolExecutor
以最大線程數(shù)為限處理多任務(wù),代表:Jetty自帶QueuedThreadPool

<tomcat>

maxThreads:表示最多同時處理的連接數(shù)殿雪。應(yīng)該將線程數(shù)(最大線程數(shù))設(shè)置比最大預(yù)期負載(同時并發(fā)的點擊)多25%(經(jīng)驗規(guī)則)(低配置用戶可通過降低maxThreads并同時增大
acceptCount值來保證系統(tǒng)的穩(wěn)定)暇咆。
acceptCount:當同時連接的人數(shù)達到maxThreads時,還可以接收排隊的連接丙曙。
minSpareThread:指“啟動以后爸业,總是保持該數(shù)量的線程空閑等待”;設(shè)置比預(yù)期負載多25%亏镰。
maxSpareThread:指“如果超過了minSpareThread扯旷,然后總是保持該數(shù)量的線程空閑等待”;設(shè)置比預(yù)期負載多25%索抓。
其中主要修改兩個參數(shù)maxThreads和acceptCount值钧忽。增加maxThreads,減少acceptCount值有利縮短系統(tǒng)的響應(yīng)時間逼肯。但是maxThreads和acceptCount的總和最高值不能超過6000耸黑,而且
maxThreads過大會增加CPU和內(nèi)存消耗,故低配置用戶可通過降低maxThreads并同時增大acceptCount值來保證系統(tǒng)的穩(wěn)定篮幢。
connectionTimeout:連接超時大刊,最大超時時間,當響應(yīng)速度慢的時候三椿,通過調(diào)整該參數(shù)缺菌,來平衡正確率和服務(wù)器資源的回收。

  • Connectors

選擇Connector時搜锰,需要考慮應(yīng)用自身的特點伴郁,例如股票、聊天室.

TCP 連接數(shù) Keep-Alive Java BIO Connectors SocketConnector (HTTP)

Ajp13SocketConnector (AJP) SslSocketConnector(SSL)

Java NIO Connectors electChannelConnector(HTTP) SslSelectChannelConnector(SSL)

Acceptors 表示同時在監(jiān)聽read事件的線程數(shù)

默認值是 1 典型值范圍 1~(處理器內(nèi)核數(shù)+1)

對于NIO 來說蛋叼,設(shè)置為(處理器內(nèi)核數(shù)+1)比較合適

maxIdleTime 表示連接最大空閑時間 默認值是 200000焊傅,一般這個值都太大了

典型值 3000 左右足夠

對AJP來說一般設(shè)置為-1剂陡,表示連接需要一直保持

LowResourcesMaxIdleTime 表示線程資源稀少時的maxIdleTime 默認值是 -1,表示沒有設(shè)置

一般設(shè)置值應(yīng)該<=maxIdleTime

lowResourcesConnections 只有NIO才有這個設(shè)置狐胎,表示連接空閑時的連接數(shù)鹏倘,大于這個數(shù)將被shutdown

默認值是 0,表示該設(shè)置沒有生效 每個acceptor的連接數(shù)=(lowResourcesConnections+acceptors-1)/acceptors

AcceptQueueSize 連接被 accept 前允許等待的連接數(shù)即Socket的Backlog ,默認 50

SoLingerTime 具有指定逗留時間(以毫秒為單位) 即socket的setSoLinger顽爹,默認關(guān)閉

ResolveNames 是否反查 getRemoteHost() 默認false

  • Content Cache

動態(tài)內(nèi)容不會被cache 靜態(tài)內(nèi)容才會被cache

maxCacheSize 256,000,000

maxCachedFileSize 200,000,000

maxCachedFiles ?2,048

useFileMappedBuffer ?true

可以通過etc/webdefault.xml配置

  • 冗余組件去除

去除多余的Connector 去除不需要的構(gòu)建Handler 例如SessionHandler,ServletHandler

關(guān)閉不必要的服務(wù) 例如 jmx-console纤泵。(JBoss)

代碼優(yōu)化:

在高峰期,減去日志記錄的操作镜粤,或者把日志暫時先緩存起來捏题,使用異步處理的方式。
減少一些數(shù)據(jù)庫操作肉渴。
減少NC 身份證等匹配方式公荧。

數(shù)據(jù)庫優(yōu)化:

索引
視圖

其他:

壓縮css,js,圖片

使用瀏覽器緩存

CDN加速

分布式緩存服務(wù)器

集群、負載均衡

調(diào)優(yōu)技巧

1.粗狂的掃點與詳細的指標相結(jié)合同规,盡量讓驗證調(diào)優(yōu)的過程更敏捷,讓主要的指標穩(wěn)定下來循狰,在確定指標前,再使用詳細的方式去測出各種指標券勺。
2.分輪測試绪钥,在測試結(jié)果中,找出各個參數(shù)的規(guī)律关炼。為調(diào)優(yōu)提供指導(dǎo)數(shù)據(jù)程腹。
3.在程序增加計數(shù)器,驗證LR的請求次數(shù)儒拂。
4.在程序每個步驟寸潦,增加多一些時間,檢查下社痛,到底是卡在哪個步驟见转,尤其是操作數(shù)據(jù)庫前后。

Ref:
http://www.sxrczx.com/pages/gordon-tech.lofter.com/post/481906_24eb191.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒜哀,一起剝皮案震驚了整個濱河市斩箫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凡怎,老刑警劉巖校焦,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赊抖,死亡現(xiàn)場離奇詭異统倒,居然都是意外死亡,警方通過查閱死者的電腦和手機氛雪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門房匆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事浴鸿【猓” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵岳链,是天一觀的道長花竞。 經(jīng)常有香客問我,道長掸哑,這世上最難降的妖魔是什么约急? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮苗分,結(jié)果婚禮上厌蔽,老公的妹妹穿的比我還像新娘。我一直安慰自己摔癣,他們只是感情好奴饮,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著择浊,像睡著了一般戴卜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琢岩,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天叉瘩,我揣著相機與錄音,去河邊找鬼粘捎。 笑死薇缅,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的攒磨。 我是一名探鬼主播泳桦,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娩缰!你這毒婦竟也來了灸撰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤拼坎,失蹤者是張志新(化名)和其女友劉穎浮毯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泰鸡,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡债蓝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了盛龄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饰迹。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡芳誓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啊鸭,到底是詐尸還是另有隱情锹淌,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布赠制,位于F島的核電站赂摆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏钟些。R本人自食惡果不足惜库正,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厘唾。 院中可真熱鬧褥符,春花似錦、人聲如沸抚垃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹤树。三九已至铣焊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間罕伯,已是汗流浹背曲伊。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留追他,地道東北人坟募。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像邑狸,于是被迫代替她去往敵國和親懈糯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理单雾,服務(wù)發(fā)現(xiàn)赚哗,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • #影響Linux性能的CPU硅堆、內(nèi)存屿储、磁盤、網(wǎng)絡(luò)等因素分析 1.系統(tǒng)硬件資源:CPU,多核與超線程 消耗CPU的業(yè)務(wù)...
    帥T閱讀 2,761評論 0 1
  • 從三月份找實習到現(xiàn)在渐逃,面了一些公司够掠,掛了不少,但最終還是拿到小米朴乖、百度祖屏、阿里、京東买羞、新浪袁勺、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,278評論 11 349
  • 1. "太上畜普,下知有之期丰,其次,親而譽之……"溫潤的聲音縈回在唇齒之間吃挑,讀書人時而將目光投到樹下瀹茶的伊人身上钝荡,又迅...
    上秋兒閱讀 359評論 0 0
  • 今天的這些文字埠通,不能也沒有打算當作文章來寫,只是作為一位母親逛犹,作為一名醫(yī)務(wù)工作者端辱,有些話想寫在這個二胎時代...
    堇色安年VY閱讀 1,050評論 6 22