<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)論排行榜

    主站蜘蛛池模板: 亚洲精品第一国产综合精品99| 在线亚洲精品自拍| 国产亚洲男人的天堂在线观看| 亚洲日本中文字幕天堂网| 玖玖在线免费视频| 亚洲性色精品一区二区在线| 亚洲国产成人久久综合碰| 一区二区在线免费观看| 亚洲人成无码网站在线观看| 区久久AAA片69亚洲| 永久免费的网站在线观看| 成在线人直播免费视频| 亚洲色偷偷偷网站色偷一区| 亚洲Av无码国产情品久久| 亚洲网站免费观看| 国产精品玖玖美女张开腿让男人桶爽免费看 | 国产亚洲精品精品精品| 亚洲国产精品热久久| 处破痛哭A√18成年片免费| 一级毛片正片免费视频手机看| 亚洲第一页在线播放| 亚洲国产一区二区视频网站| h视频在线观看免费网站| 成人免费夜片在线观看| 亚洲人成777在线播放| 国产亚洲AV手机在线观看| 毛片在线免费视频| 国产成人精品免费久久久久| 男人和女人高潮免费网站| 亚洲三级高清免费| 亚洲久本草在线中文字幕| 久久久久亚洲AV无码专区网站| 成人免费毛片视频| 最近免费视频中文字幕大全| 久久精品无码免费不卡| 亚洲a∨国产av综合av下载| 亚洲AV色吊丝无码| 亚洲精品线在线观看| 亚洲午夜久久久久久久久电影网| 国产成人高清精品免费鸭子| 日本片免费观看一区二区|