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