<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 27,  comments - 14,  trackbacks - 0
    有一個(gè)J2EE項(xiàng)目,碰到一些性能問(wèn)題。客戶用LoadRunner測(cè)試,十個(gè)用戶并發(fā)測(cè)試登錄,就導(dǎo)致系統(tǒng)崩潰。經(jīng)過(guò)檢查,發(fā)現(xiàn)是數(shù)據(jù)池設(shè)置的太小,在IBM  WPS里面設(shè)置的數(shù)據(jù)池缺省是1-10,結(jié)果當(dāng)用5個(gè)并發(fā)測(cè)試的時(shí)候,就總是有5個(gè)進(jìn)程在等待數(shù)據(jù)連接。這樣,系統(tǒng)自然通不過(guò)測(cè)試了。后來(lái)把數(shù)據(jù)池改大了,測(cè)試通過(guò),而且速度飛快。

    J2EE的性能問(wèn)題,是Java誕生以來(lái)就一直存在的問(wèn)題,盡管這些年間已經(jīng)有了非常大的改進(jìn),但畢竟還是不如C等代碼生成的程序。但我們?cè)谂龅絁2EE程序性能的時(shí)候,卻不能總把問(wèn)題歸咎于Java的問(wèn)題。事實(shí)上,在很大程度上,J2EE碰到的性能問(wèn)題,都是環(huán)境方面的配置問(wèn)題。

    簡(jiǎn)單列舉一下J2EE可能碰到的性能方面的一些可能原因:
    1、JVM內(nèi)存分配的問(wèn)題。JVM如果沒(méi)有單獨(dú)設(shè)置,缺省使用的內(nèi)存是比較有效的,好像是32M。這樣的內(nèi)存,對(duì)于大并發(fā)訪問(wèn)是遠(yuǎn)遠(yuǎn)不夠的,需要根據(jù)服務(wù)器的內(nèi)存情況進(jìn)行優(yōu)化,這時(shí)候常常會(huì)拋內(nèi)存溢出的錯(cuò)誤。但也不能無(wú)限大,JVM最多只能使用2G的內(nèi)存。比如,通常可以設(shè)置為 -Xms512m -Xmx1024m。
    2、WEB服務(wù)器的并發(fā)服務(wù)線程數(shù)。通常的WEB容器都有這樣一個(gè)限制,比如Tomcat缺省是75.這時(shí)候,如果使用LoadRunner等進(jìn)行100用戶并發(fā)測(cè)試,則肯定有不少請(qǐng)求會(huì)等待,而不是完全執(zhí)行。WebLogic的缺省設(shè)置好像更小,我記得反正不到30.如果在實(shí)際使用中,發(fā)現(xiàn)這個(gè)并發(fā)線程數(shù)是瓶頸,則可以調(diào)得更大一些。
    3、數(shù)據(jù)池的大小,這正好是朋友碰到的問(wèn)題。通常情況下,數(shù)據(jù)池的大小,應(yīng)該略大于WEB服務(wù)器的并發(fā)服務(wù)線程數(shù)。我們至少要保證每個(gè)WEB進(jìn)程都能獲取到相應(yīng)的數(shù)據(jù)連接。如果每個(gè)WEB進(jìn)程,可能需要多個(gè)數(shù)據(jù)連接,這時(shí)候數(shù)據(jù)池也應(yīng)該相應(yīng)調(diào)整的更大。
    4、數(shù)據(jù)表的索引問(wèn)題。對(duì)普通程序員,碰到性能問(wèn)題的時(shí)候,很難想到表索引的問(wèn)題。特別是針對(duì)大數(shù)據(jù)量的數(shù)據(jù)表,有沒(méi)有合理索引的情況,查詢的效率,往往是幾十上百倍。建索引之前一個(gè)小時(shí)才能完成的任務(wù),如果有合理的索引,可能1分鐘不到就能搞定。索引的最簡(jiǎn)單的設(shè)置規(guī)則,就是把Where、Order子句中的所有字段都建上索引。

    從以上這幾個(gè)方面,往往能解決大部分的性能問(wèn)題。
    再來(lái)說(shuō)說(shuō)碰到性能問(wèn)題的時(shí)候大概的思路。原則只有一個(gè),就是“定位問(wèn)題所在”。
    1、查看服務(wù)器日志,日志里面的很多的有用信息,能從中初步發(fā)現(xiàn)問(wèn)題所在。
    2、結(jié)合日志,查看相應(yīng)的設(shè)置,并對(duì)服務(wù)器進(jìn)行監(jiān)控。然后對(duì)參數(shù)進(jìn)行必要的調(diào)整,繼續(xù)測(cè)試。
    3、如果定位到是數(shù)據(jù)庫(kù)上是瓶頸,就要檢查相應(yīng)的數(shù)據(jù)表的索引設(shè)置。有些數(shù)據(jù)庫(kù)提供SQL語(yǔ)句的監(jiān)控和性能分析,可以分析出一些有用的結(jié)論。
    以上只是一些初步的指導(dǎo)。如果一些初步的設(shè)置解決不了問(wèn)題,則需要進(jìn)一步細(xì)化了。
    比如說(shuō)索引的問(wèn)題,簡(jiǎn)單的規(guī)則是給所有Where子句后面的字段添加索引。但這條規(guī)則太簡(jiǎn)單,某些情況下并不適用,這時(shí)候就要根據(jù)數(shù)據(jù)表的數(shù)據(jù)量、數(shù)據(jù)的差異、SQL語(yǔ)句等進(jìn)行仔細(xì)調(diào)整。這就需要更多的經(jīng)驗(yàn)、更仔細(xì)的調(diào)試才能得到更好的效果。
    如果以上都解決不了問(wèn)題,這時(shí)候就要考慮代碼上是不是需要優(yōu)化了。
    posted on 2007-07-11 15:48 Scott.Pan 閱讀(485) 評(píng)論(0)  編輯  收藏 所屬分類: SSHJ2EE

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日韩在线播放全免费| 国产亚洲一区二区精品| 久久青青草原亚洲av无码| 亚洲校园春色小说| 成人自慰女黄网站免费大全 | 国产精品免费大片| 亚洲国产精品人人做人人爱| 亚洲香蕉久久一区二区| 国产免费一区二区三区在线观看 | 亚洲精品123区在线观看| 美女被免费喷白浆视频| 亚洲精品自在线拍| 18禁无遮挡无码国产免费网站| 亚洲国产成人片在线观看无码 | 久久亚洲sm情趣捆绑调教| 女人隐私秘视频黄www免费| 最新亚洲成av人免费看| a级毛片免费在线观看| 四虎亚洲精品高清在线观看| 国产亚洲AV无码AV男人的天堂| 成人人观看的免费毛片| 亚洲黄色免费观看| 亚洲午夜福利精品无码| 高清一区二区三区免费视频| 美女被爆羞羞网站免费| 国产男女猛烈无遮挡免费网站| 老司机午夜在线视频免费观| 亚洲国产精品yw在线观看| 在线jlzzjlzz免费播放| 91久久青青草原线免费| 国产亚洲玖玖玖在线观看| 久久香蕉国产线看观看亚洲片| 免费观看黄色的网站| A级毛片高清免费视频在线播放| 亚洲视频免费播放| 久久亚洲精品国产精品黑人| 黄色网址免费大全| 无人视频在线观看免费播放影院| 国产精一品亚洲二区在线播放| 亚洲AV无码一区二区三区国产| 成年女人毛片免费播放视频m |