偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

性能測(cè)試知多少:性能分析與調(diào)優(yōu)的原理

開(kāi)發(fā) 測(cè)試
最近一直糾結(jié)性能分析與調(diào)優(yōu)如何下手,先從硬件開(kāi)始,還是先從代碼或數(shù)據(jù)庫(kù)。從操作系統(tǒng)(CPU調(diào)度,內(nèi)存管理,進(jìn)程調(diào)度,磁盤(pán)I/O)、網(wǎng)絡(luò)、協(xié)議(HTTP, TCP/IP ),還是從應(yīng)用程序代碼,數(shù)據(jù)庫(kù)調(diào)優(yōu),中間件配置等方面入手。

最近一直糾結(jié)性能分析與調(diào)優(yōu)如何下手,先從硬件開(kāi)始,還是先從代碼或數(shù)據(jù)庫(kù)。從操作系統(tǒng)(CPU調(diào)度,內(nèi)存管理,進(jìn)程調(diào)度,磁盤(pán)I/O)、網(wǎng)絡(luò)、協(xié)議(HTTP, TCP/IP ),還是從應(yīng)用程序代碼,數(shù)據(jù)庫(kù)調(diào)優(yōu),中間件配置等方面入手。

單一個(gè)中間件又分web中間件(apache 、IIS),應(yīng)用中間件(tomcat weblogic 、webSphere )等,雖然都是中間件,每一樣拎出來(lái)往深了學(xué)都不是一朝一夕之功。但調(diào)優(yōu)對(duì)于每一項(xiàng)的要求又不僅僅是“知道”或“會(huì)使用”這么簡(jiǎn)單。起碼要達(dá)到“如何更好的使用”。

??吹叫阅軠y(cè)試書(shū)中說(shuō),性能測(cè)試不單單是性能測(cè)試工程師一個(gè)人的事兒。需要DBA 、開(kāi)發(fā)人員、運(yùn)維人員的配合完成。但是在不少情況下性能測(cè)試是由性能測(cè)試人員獨(dú)立完成的,退一步就算由其它人員的協(xié)助,了解系統(tǒng)架構(gòu)的的各個(gè)模塊對(duì)于自身的提高也有很大幫助,同進(jìn)也更能得到別人的尊重。

再說(shuō)性能調(diào)優(yōu)之前,我們有必要再提一下進(jìn)行測(cè)試的目的,或者我們進(jìn)行性能測(cè)試的初衷是什么?

能力驗(yàn)證:驗(yàn)證某系統(tǒng)在一定條件具有什么樣的能力。

能力規(guī)劃:如何使系統(tǒng)達(dá)到我們要求的性能能力。

應(yīng)用程序診斷:比如內(nèi)存泄漏,通過(guò)功能測(cè)試很難發(fā)現(xiàn),但通過(guò)性能測(cè)試卻很容易發(fā)現(xiàn)。

性能調(diào)優(yōu):滿足用戶(hù)需求,進(jìn)一步進(jìn)行系統(tǒng)分析找出瓶頸,優(yōu)化瓶頸,提高系統(tǒng)整體性能。

一般系統(tǒng)的瓶頸                                                                                          

性能測(cè)試調(diào)優(yōu)需要先發(fā)現(xiàn)瓶頸,那么系統(tǒng)一般會(huì)存在哪些瓶頸:

硬件上的性能瓶頸

一般指的是CPU、內(nèi)存、磁盤(pán)I/O 方面的問(wèn)題,分為服務(wù)器硬件瓶頸、網(wǎng)絡(luò)瓶頸(對(duì)局域網(wǎng)可以不考慮)、服務(wù)器操作系統(tǒng)瓶頸(參數(shù)配置)、中間件瓶頸(參數(shù)配置、數(shù)據(jù)庫(kù)、web服務(wù)器等)、應(yīng)用瓶頸(SQL 語(yǔ)句、數(shù)據(jù)庫(kù)設(shè)計(jì)、業(yè)務(wù)邏輯、算法等)。

應(yīng)用軟件上的性能瓶頸

一般指的是應(yīng)用服務(wù)器、web 服務(wù)器等應(yīng)用軟件,還包括數(shù)據(jù)庫(kù)系統(tǒng)。

例如:中間件weblogic 平臺(tái)上配置的JDBC連接池的參數(shù)設(shè)置不合理,造成的瓶頸。

應(yīng)用程序上的性能瓶頸

一般指的是開(kāi)發(fā)人員新開(kāi)發(fā)出來(lái)的應(yīng)用程序。

例如,程序架構(gòu)規(guī)劃不合理,程序本身設(shè)計(jì)有問(wèn)題(串行處理、請(qǐng)求的處理線程不夠),造成系統(tǒng)在大量用戶(hù)方位時(shí)性能低下而造成的瓶頸。

操作系統(tǒng)上的性能瓶頸

一般指的是windows、UNIX、Linux等操作系統(tǒng)。

例如,在進(jìn)行性能測(cè)試,出現(xiàn)物理內(nèi)存不足時(shí),虛擬內(nèi)存設(shè)置也不合理,虛擬內(nèi)存的交換效率就會(huì)大大降低,從而導(dǎo)致行為的響應(yīng)時(shí)間大大增加,這時(shí)認(rèn)為操作系統(tǒng)上出現(xiàn)性能瓶頸。

網(wǎng)絡(luò)設(shè)備上的性能瓶頸

一般指的是防火墻、動(dòng)態(tài)負(fù)載均衡器、交換機(jī)等設(shè)備。

例如,在動(dòng)態(tài)負(fù)載均衡器上設(shè)置了動(dòng)態(tài)分發(fā)負(fù)載的機(jī)制,當(dāng)發(fā)現(xiàn)某個(gè)應(yīng)用服務(wù)器上的硬件資源已經(jīng)到達(dá)極限時(shí),動(dòng)態(tài)負(fù)載均衡器將后續(xù)的交易請(qǐng)求發(fā)送到其他負(fù)載較輕的應(yīng)用服務(wù)器上。在測(cè)試時(shí)發(fā)現(xiàn),動(dòng)態(tài)負(fù)載均衡器沒(méi)有起到相應(yīng)的作用,這時(shí)可以認(rèn)為網(wǎng)絡(luò)瓶頸。

性能測(cè)試出現(xiàn)的原因及其定位十分復(fù)雜,這里只是簡(jiǎn)單介紹常見(jiàn)的幾種瓶頸類(lèi)型和特征,而性能測(cè)試所需要做的就是根據(jù)各種情況因素綜合考慮,然后協(xié)助開(kāi)發(fā)人員\DBA\運(yùn)維人員一起定位性能瓶頸。

一般性能調(diào)優(yōu)步驟                                                                                      

一般性能問(wèn)題調(diào)優(yōu)的步驟:

步驟一:確定問(wèn)題

應(yīng)用程序代碼:在通常情況下,很多程序的性能問(wèn)題都是寫(xiě)出來(lái)的,因此對(duì)于發(fā)現(xiàn)瓶頸的模塊,應(yīng)該首先檢查一下代碼。

數(shù)據(jù)庫(kù)配置:經(jīng)常引起整個(gè)系統(tǒng)運(yùn)行緩慢,一些諸如oracle 的大型數(shù)據(jù)庫(kù)都是需要DBA進(jìn)行正確的參數(shù)調(diào)整才能投產(chǎn)的。

操作系統(tǒng)配置:不合理就可能引起系統(tǒng)瓶頸。

硬件設(shè)置:硬盤(pán)速度、內(nèi)存大小等都是容易引起瓶頸的原因,因此這些都是分析的重點(diǎn)。

網(wǎng)絡(luò):網(wǎng)絡(luò)負(fù)載過(guò)重導(dǎo)致網(wǎng)絡(luò)沖突和網(wǎng)絡(luò)延遲。

步驟二:確定問(wèn)題

當(dāng)確定了問(wèn)題之后,我們要明確這個(gè)問(wèn)題影響的是響應(yīng)時(shí)間吞吐量,還是其他問(wèn)題?是多數(shù)用戶(hù)還是少數(shù)用戶(hù)遇到了問(wèn)題?如果是少數(shù)用戶(hù),這幾個(gè)用戶(hù)與其它用戶(hù)的操作有什么不用?系統(tǒng)資源監(jiān)控的結(jié)果是否正常?CPU的使用是否到達(dá)極限?I/O 情況如何?問(wèn)題是否集中在某一類(lèi)模塊中? 是客戶(hù)端還是服務(wù)器出現(xiàn)問(wèn)題? 系統(tǒng)硬件配置是否夠用?實(shí)際負(fù)載是否超過(guò)了系統(tǒng)的負(fù)載能力? 是否未對(duì)系統(tǒng)進(jìn)行優(yōu)化?

通過(guò)這些分析及一些與系統(tǒng)相關(guān)的問(wèn)題,可以對(duì)系統(tǒng)瓶頸有更深入的了解,進(jìn)而分析出真正的原因。

步驟三: 確定調(diào)整目標(biāo)和解決方案

得高系統(tǒng)吞吐理,縮短響應(yīng)時(shí)間,更好地支持并發(fā)。

步驟四:測(cè)試解決方案

對(duì)通過(guò)解決方案調(diào)優(yōu)后的系統(tǒng)進(jìn)行基準(zhǔn)測(cè)試。(基準(zhǔn)測(cè)試是指通過(guò)設(shè)計(jì)科學(xué)的測(cè)試方法、測(cè)試工具和測(cè)試系統(tǒng),實(shí)現(xiàn)對(duì)一類(lèi)測(cè)試對(duì)象的某項(xiàng)性能指標(biāo)進(jìn)行定量的和可對(duì)比的測(cè)試)

步驟五:分析調(diào)優(yōu)結(jié)果

系統(tǒng)調(diào)優(yōu)是否達(dá)到或者超出了預(yù)定目標(biāo)?系統(tǒng)是整體性能得到了改善,還是以系統(tǒng)某部分性能來(lái)解決其他問(wèn)題。調(diào)優(yōu)是否可以結(jié)束了。

***,如果達(dá)到了預(yù)期目標(biāo),調(diào)優(yōu)工作就基本可以結(jié)束了。

下面算是一個(gè)技巧,如面試官問(wèn)到一個(gè)性能問(wèn)題假設(shè),我不知道性能問(wèn)題出在哪兒時(shí),可以按照這個(gè)思路回答^_^

• 查找瓶頸時(shí)按以下順序,由易到難。

服務(wù)器硬件瓶頸---〉網(wǎng)絡(luò)瓶頸(對(duì)局域網(wǎng),可以不考慮)---〉服務(wù)器操作系統(tǒng)瓶頸(參數(shù)配置)---〉中間件瓶頸(參數(shù)配置,數(shù)據(jù)庫(kù),web服務(wù)器等)---〉應(yīng)用瓶頸(SQL語(yǔ)句、數(shù)據(jù)庫(kù)設(shè)計(jì)、業(yè)務(wù)邏輯、算法等)

注:以上過(guò)程并不是每個(gè)分析中都需要的,要根據(jù)測(cè)試目的和要求來(lái)確定分析的深度。對(duì)一些要求低的,我們分析到應(yīng)用系統(tǒng)在將來(lái)大的負(fù)載壓力(并發(fā)用戶(hù)數(shù)、數(shù)據(jù)量)下,系統(tǒng)的硬件瓶頸在哪兒就夠了。

 • 分段排除法 很有效

性能測(cè)試調(diào)優(yōu)應(yīng)該注意的要點(diǎn):

  • 要點(diǎn)1: 在應(yīng)用系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)過(guò)程中,應(yīng)始終把性能放在考慮的范圍內(nèi)。
  • 要點(diǎn)2: 確定清晰明確的性能目標(biāo)是關(guān)鍵。
  • 要點(diǎn)3: 必須保證調(diào)優(yōu)后的程序運(yùn)行正確。
  • 要點(diǎn)4: 系統(tǒng)的性能更大程度上取決于良好的設(shè)計(jì),調(diào)優(yōu)技巧只是一個(gè)輔助手段。
  • 要點(diǎn)5: 調(diào)優(yōu)過(guò)程是迭代漸進(jìn)的過(guò)程,每一次調(diào)優(yōu)的結(jié)果都要反饋到后續(xù)的代碼開(kāi)發(fā)中去。
  • 要點(diǎn)6: 性能調(diào)優(yōu)不能以犧牲代碼的可讀性和可維護(hù)性為代碼。

本文只介紹了一些性能調(diào)優(yōu)的要關(guān)注的東西以及性能調(diào)優(yōu)的一般要點(diǎn)。并沒(méi)有具體說(shuō)如何對(duì)系統(tǒng)的每個(gè)部件進(jìn)行調(diào)優(yōu),如何要細(xì)說(shuō)也不是一兩書(shū)能說(shuō)清的,對(duì)知識(shí)面的要求也非常高,是我目前的能力無(wú)法觸摸的。

這里做個(gè)總結(jié):

《性能測(cè)試知多少》系列基本完結(jié),雖然時(shí)間拉得比較長(zhǎng),但我沒(méi)有把它給太監(jiān)。雖然內(nèi)容都在空談性能測(cè)試?yán)碚撝R(shí),但我認(rèn)為這些東西對(duì)于你從事性能測(cè)試工作必不可少。當(dāng)然,我在“ jmeter基礎(chǔ) ” 與“ loadrunner 技巧 ” 中講解兩個(gè)性能測(cè)試工具的使用。

如果我的這些文章對(duì)于想了解和學(xué)習(xí)性能的同學(xué)帶來(lái)一絲的幫助,我將非常開(kāi)心。我不是高手,只是和你一起熱愛(ài)測(cè)試技術(shù)的初學(xué)者,只是比較喜歡總結(jié);也時(shí)常為前途迷茫,但我知道只要斷去學(xué)習(xí),路就在前方。我后面會(huì)整理性能調(diào)優(yōu)的相關(guān)文章。

原文鏈接:http://www.cnblogs.com/fnng/archive/2013/03/19/2970315.html

責(zé)任編輯:林師授 來(lái)源: 博客園
相關(guān)推薦

2012-06-28 13:44:55

測(cè)試性能測(cè)試并發(fā)

2012-06-26 09:20:49

性能測(cè)試

2017-07-14 10:51:37

性能優(yōu)化SQL性能分析

2023-06-05 09:17:50

SQLAlchemy關(guān)系型數(shù)據(jù)庫(kù)

2013-03-20 17:18:07

Linux系統(tǒng)性能調(diào)優(yōu)

2013-03-20 17:30:18

2020-09-03 14:30:40

Tomcat 拆解調(diào)優(yōu)

2012-03-26 10:55:03

JavaJava EE

2012-06-20 11:05:47

性能調(diào)優(yōu)攻略

2011-03-10 14:40:54

LAMPMysql

2017-07-21 08:55:13

TomcatJVM容器

2011-05-20 15:02:01

Oracle性能調(diào)優(yōu)

2011-11-14 10:28:23

2020-11-30 11:40:35

NginxLinux性能調(diào)優(yōu)

2021-03-04 08:39:21

SparkRDD調(diào)優(yōu)

2021-12-26 00:03:25

Spark性能調(diào)優(yōu)

2020-08-18 13:50:04

Tomcat高并發(fā)Java

2023-10-08 13:47:33

Docker容器

2022-09-14 22:58:58

Push 推薦Java 開(kāi)發(fā)vivo

2014-12-01 11:30:06

PostgreSQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)