自己玩的DEMO級項目壓力測試,網絡先掛。

自己開發的一個小系統,做了一些功能,用朋友的機器來做客戶端壓力測試,一個TOMCAT 6.0放在我自己開發的機器上(2年前買的筆記本,型號ThinkPad T61),(ADSL 4MB(上傳多少?512KB?)),INTEL 2.0(Duo 2),2GB內存,雙硬盤,WIN XP專業版,OK。系統採用了用爛的框架:Struts2,Spring2,Hibernate3。頁面使用了JSP與Struts2的標籤,而非FREEMAKE這類摸板。無集羣,無消息傳遞,無分佈式數據庫,無分佈式環境。
LoadRunner一啓動,HTTP壓力測試開啓,100個虛擬用戶,自定義環境,2個2個併發同時,1分30秒結束,快速遞增。前期,OK,程序運轉良好,雖然有連接池,但是明顯訪問數據庫次數太多,此時就開始後悔了,沒有給加上中間業務層緩存,到了後面10個併發的時候,程序明顯喫不住了,多了很多異常,我還奇怪,難道我程序問題?立刻就把測試停止,看着異常,我很無語,什麼怪事都有,連接池找不到?字符串截斷OUT OF Bound?我暈,我在程序前面可是做了長度IF語句的檢查的呀,怎麼會OUT OF Bound?還有些更離奇的錯誤。先不管了,先看LoadRunner控制檯,結果錯誤有一堆,打開一開,幾乎都是些無法連接服務器?我一想,難道是網絡問題?睹了?在看看失敗的業務,很少,除了那個OUT OF Bound,別的都還算運行正常。
後悔了,後悔了,怎麼樣提升性能,緩存,還是緩存,我終於意識到緩存的重要性了,立刻用RAR打開ehcache-1.2.4.jar,在用JD反編,結果發現ehcache似乎也並不複雜,斷斷續續的看了幾個CLASS,感覺還行,在看看JIVE論壇的業務層緩存實現,在想想HIBERNATE用那該死的二級緩存縮頭縮腦,load一圈,最後還沒中一個,就火,索性需要緩存的,不改變的地方直接用了findByHQLCache,會改變的地方大對用了FIND,完蛋了,沒有緩存,無狀態到是爽了,但是訪問數據庫來個不停,哎哎哎,看樣子還是得從緩存下手啊。
SPRING AOP的企業級事務處理很爽,getHibernateTemplate,HibernateCallback用的到是很爽,SERVICE層事務一配置,爽。不爽的就是訪問數據庫的次數太多,研究,必須研究JIVE的那個業務層緩存,從設計上入手,業務層級別的緩存,多線層,設計模式的靈活運用,等等,系統才能真正的高效。
不廢話了,看書,研究,學習。
最近許多同學說我太瘋狂,其實:別人笑我太瘋癲,我笑別人看不穿。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章