07 2008 檔案
摘要: 不是專職做壓力測試這行當?shù)模荒苁且宰约旱慕?jīng)驗來以外行人的眼光來說說壓力測試,壓力測試并不僅僅是個壓力測試的過程,而是一個相當系統(tǒng)的工程,我認為壓力測試是為了讓系統(tǒng)達到所期望的運行效果以及承受所期望的壓力,這也就要求壓力測試應(yīng)該幫助性能調(diào)優(yōu)團隊,為其提供一定程度的指導,在這里我不將壓力測試和性能調(diào)優(yōu)分的那么清楚了,在我看來,壓力測試過程包括了:明確壓力測試的目標、構(gòu)建壓力測試案例、進行壓力測試、分析壓力測試結(jié)果、尋找瓶頸并進行調(diào)優(yōu)以達到目標,在這篇blog中來細看下這幾個過程以及常用的方法。
閱讀全文
摘要: 這篇文章的第二部分在昨天也發(fā)布出來了,于是抓緊時間把它給翻譯了。在這篇文章的第一部分中,作者結(jié)合自己的經(jīng)驗對如何構(gòu)建具備良好的垂直擴展能力的Java EE應(yīng)用做了講解,在這第二部分的文章中,作者則對如何構(gòu)建具備良好水平擴展能力的Java EE應(yīng)用來進行了詳細的講述,常見的session復制問題,水平擴展中經(jīng)常需要涉及的分布式文件系統(tǒng)、分布式緩存、分布式并行計算,全文讀下來,作者基本指出了構(gòu)建可擴展的Java EE應(yīng)用需要了解的知識體系(如需深入的話還有必要進一步的學習,例如集群技術(shù)、通訊協(xié)議、線程、并發(fā)等)和平時實踐中的一些注意事項,應(yīng)該說是篇十分難得的好文章,值得推薦。
閱讀全文
摘要: 這是一篇從TheServerSide上翻譯過來的文章,很自豪這篇這么好的文章是一個中國人(從作者名字上猜想應(yīng)該是中國人吧,:))寫的,原文地址為:http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplications,可以說,這篇文章寫的是非常的不錯的,這是文章的第一部分,探討了如何構(gòu)建可垂直擴展的Java EE應(yīng)用,文中談?wù)摰降淖屗帉懙腏ava EE應(yīng)用具備垂直擴展能力的幾個關(guān)鍵要素,例如熱鎖問題、盡可能的縮短同步塊、不要在static方法上加鎖、多使用Atomic包、jvm內(nèi)存不能設(shè)置的太大等,文中除了列了這幾個關(guān)鍵要素外,還詳細的解釋了為什么不能做以及如何避免出現(xiàn)這樣的現(xiàn)象,可以很明顯的看出作者在這些方面是具備了非常豐富的經(jīng)驗的,因此這篇文章不僅僅講述了可擴展性理論方面的知識,同時也很好的從實戰(zhàn)角度進行了分析,之后我也會結(jié)合這篇文章來說說自己曾經(jīng)碰到的垂直擴展場景的反例,同時也很期待這篇文章的第二部分,第二部分將探討如何構(gòu)建可水平擴展的Java EE應(yīng)用,翻譯的不好的地方還請大家多
閱讀全文
摘要: 之前寫了個簡單的jsp做壓力測試,沒想到出現(xiàn)的一個問題是當壓力比較大的情況,運行比較久的話會出現(xiàn)一個現(xiàn)象,就是jvm的內(nèi)存幾乎被耗盡,用 jprofiler查看會發(fā)現(xiàn)是有一個ConcurrentHashMap對象的內(nèi)存一直在增長,而且沒有釋放的跡象,隨后進入Debug模式,跟蹤查找都有誰new了ConcurrentHashMap,因為測試場景中是個非常簡單的jsp頁面,發(fā)現(xiàn)只有jsp的Request session會創(chuàng)建這個ConcurrentHashMap,很久沒寫jsp了,猜測是request session的默認超時時間太長,所以導致高壓力下(200并發(fā),總共連續(xù)訪問50萬次,jvm內(nèi)存1G)會出現(xiàn)內(nèi)存一直沒有回收的問題,后來打印了一下request session的默認超時(AS是jboss 4.2.2),是半小時,如果這樣的話確實是會有造成上面內(nèi)存一直被占用的現(xiàn)象。
閱讀全文