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

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

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

    鷹翔宇空

    學(xué)習(xí)和生活

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
    引自:http://www.tkk7.com/zyb9114/articles/26113.html

    Weblogic服務(wù)器性能調(diào)優(yōu)

    ?????? 注:在下面做的介紹都是以Weblogic8.1為例的,其它版本的Weblogic可能會有些許不同。

    ?????? 1) 設(shè)置JAVA參數(shù);

    ?????? a) 編輯Weblogic Server啟動腳本文件;

    l???????? BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)

    l???????? BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.sh on Unix)

    b) 編輯set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m –Xmx256m

    c) 保存,重啟即可。

    注:在WebLogic中,為了獲得更好的性能,BEA公司推薦最小Java堆等于最大Java堆。

    2) 開發(fā)模式 vs. 產(chǎn)品模式;

    開發(fā)模式和產(chǎn)品模式的一些參數(shù)的默認(rèn)值不同,可能會對性能造成影響,下面是對性能有影響的參數(shù)列表:

    參數(shù)

    開發(fā)模式默認(rèn)值

    產(chǎn)品模式默認(rèn)值

    Execute Queue: Thread Count

    15 threads

    25 threads

    JDBC Connection Pool: MaxCapacity

    15 connnections

    25 connections

    ?????? 通過啟動管理控制臺,在域(如:mydomain> 配置> 常規(guī)選擇產(chǎn)品模式。

    3) 盡量開啟本地I/O

    通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver> 配置 > 調(diào)整選擇啟用本地I/O

    注:此值也可通過手動的修改config.xml配置文件。

    4) 調(diào)優(yōu)執(zhí)行隊(duì)列線程;

    a) 修改默認(rèn)執(zhí)行線程數(shù)

    在這里,執(zhí)行隊(duì)列的線程數(shù)表示執(zhí)行隊(duì)列能夠同時(shí)執(zhí)行的操作的數(shù)量。但此值不是設(shè)的越大越好,應(yīng)該恰到好處的去設(shè)置它,太小了,執(zhí)行隊(duì)列中將會積累很多待處理的任務(wù),太大了,則會消耗大量的系統(tǒng)資源從而影響整體的性能。在產(chǎn)品模式下默認(rèn)為25個(gè)執(zhí)行線程。

    為了設(shè)置理想的執(zhí)行隊(duì)列的線程數(shù),我們可以啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver> 監(jiān)視 > 性能中監(jiān)控最大負(fù)載時(shí)執(zhí)行隊(duì)列的吞吐量和隊(duì)列中的等待請求數(shù),據(jù)此確定理想的數(shù)值。

    ?????? 理想的默認(rèn)執(zhí)行線程數(shù)是由多方面的因素決定的,比如機(jī)器CPU性能、總體體系架構(gòu)、I/O、操作系統(tǒng)的進(jìn)程調(diào)度機(jī)制、JVM的線程調(diào)度機(jī)制。隨著CPU個(gè)數(shù)的增加,WebLogic可以近乎線性地提高線程數(shù)。線程數(shù)越多,花費(fèi)在線程切換的時(shí)間也就越多;線程數(shù)越小,CPU可能無法得到充分的利用。為獲取一個(gè)理想的線程數(shù),需要經(jīng)過反復(fù)的測試。在測試中,可以以25*CPU個(gè)數(shù)為基準(zhǔn)進(jìn)行調(diào)整。當(dāng)空閑線程較少,CPU利用率較低時(shí),可以適當(dāng)增加線程數(shù)的大小(每五個(gè)遞增)。對于PC ServerWindows 2000,則最好每個(gè)CPU小于50個(gè)線程,以CPU利用率為90%左右為最佳。

    ?????? 通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置中修改線程計(jì)數(shù)。

    ?????? b) 設(shè)定執(zhí)行隊(duì)列的溢出條件;

    ?????? Weblogic Server提供給默認(rèn)的執(zhí)行隊(duì)列或用戶自定義的執(zhí)行隊(duì)列自定義溢出條件的功能,當(dāng)滿足此溢出條件時(shí),服務(wù)器改變其狀態(tài)為“警告”狀態(tài),并且額外的再分配一些線程去處理在隊(duì)列中的請求,而達(dá)到降低隊(duì)列長度的目的。

    ?????? 通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置下面幾項(xiàng):

    l???????? 隊(duì)列長度:此值表示執(zhí)行隊(duì)列中可容納的最大請求數(shù),默認(rèn)值是65536,最后不要手動改變此值。

    l???????? 隊(duì)列長度閾值百分比:此值表示溢出條件,在此服務(wù)器指出隊(duì)列溢出之前可以達(dá)到的隊(duì)列長度大小的百分比。

    l???????? 線程數(shù)增加:當(dāng)檢測到溢出條件時(shí),將增加到執(zhí)行隊(duì)列中的線程數(shù)量。如果CPU和內(nèi)存不是足夠的高,盡量不要改變默認(rèn)值“0”。因?yàn)?/span>Weblogic一旦增加后不會自動縮減,雖然最終可能確實(shí)起到了降低請求的作用,但在將來的運(yùn)行中將影響程序的性能。

    l???????? 最大線程數(shù):為了防止創(chuàng)建過多的線程數(shù)量,可以通過設(shè)定最大的線程數(shù)進(jìn)行控制。

    在實(shí)際的應(yīng)用場景中,應(yīng)根據(jù)具體情況適當(dāng)?shù)恼{(diào)整以上參數(shù)。

    c) 設(shè)定執(zhí)行隊(duì)列監(jiān)測行為

    Weblogic Server能夠自動監(jiān)測到當(dāng)一個(gè)執(zhí)行線程變?yōu)椤白枞薄W優(yōu)椤白枞睜顟B(tài)的執(zhí)行線程將無法完成當(dāng)前的工作,也無法再執(zhí)行新請求。如果執(zhí)行隊(duì)列中的所有執(zhí)行線程都變?yōu)椤白枞睜顟B(tài),Weblogic server可能改變狀態(tài)為“警告”或“嚴(yán)重”狀態(tài)。如果Weblogic server變?yōu)椤皣?yán)重”狀態(tài),可以通過Node Manager來自動關(guān)閉此服務(wù)器并重新啟動它。具體請參考:Node Manager Capabilities文檔。

    通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver>配置 > 調(diào)整下可配置下面幾項(xiàng):

    l???????? 阻塞線程最長時(shí)間:在此服務(wù)器將線程診斷為阻塞線程之前,線程必須連續(xù)工作的時(shí)間長度()。默認(rèn)情況下,WebLogic Server 認(rèn)為線程在連續(xù)工作 600 秒后成為阻塞線程。

    l???????? 阻塞線程計(jì)時(shí)器間隔:WebLogic Server 定期掃描線程以查看它們是否已經(jīng)連續(xù)工作了 "阻塞線程最長時(shí)間" 字段中指定的時(shí)間長度的間隔時(shí)間()。默認(rèn)情況下,WebLogic Server 將此時(shí)間間隔設(shè)置為 600 秒。

    5) 調(diào)優(yōu)TCP連接緩存數(shù);

    WebLogic ServerAccept Backlog參數(shù)規(guī)定服務(wù)器向操作系統(tǒng)請求的隊(duì)列大小,默認(rèn)值為50。當(dāng)系統(tǒng)重載負(fù)荷時(shí),這個(gè)值可能過小,日志中報(bào)Connection Refused,導(dǎo)致有效連接請求遭到拒絕,此時(shí)可以提高Accept Backlog 25%直到連接拒絕錯(cuò)誤消失。對于Portal類型的應(yīng)用,默認(rèn)值往往是不夠的。Login TimeoutSSL Login Timeout參數(shù)表示普通連接和SSL連接的超時(shí)時(shí)間,如果客戶連接被服務(wù)器中斷或者SSL容量大,可以嘗試增加該值。

    通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver>配置 > 調(diào)整下可配置“接受預(yù)備連接”。

    6) 改變Java編譯器;

    標(biāo)準(zhǔn)的Java編譯器是javac,但編譯JSP servlets速度太慢,為了提高編譯速度,可以使用sjjikes編譯器取代javac編譯器。下面說說更改Java編譯器:

    通過啟動管理控制臺,在域(如:mydomain> 服務(wù)器 > server實(shí)例(如:myserver>配置 > 常規(guī)下改變Java 編譯器,默認(rèn)為javac。輸入完整路徑,如:c:\visualcafe31\bin\sj.exe。然后打開高級選項(xiàng),在預(yù)規(guī)劃到類路徑填寫編譯 Java 代碼時(shí)為 Java 編譯器類路徑預(yù)規(guī)劃的選項(xiàng),如:BEA_HOME\jdk141_02\jre\lib\rt.jar

    7) 使用Webogic Server集群提高性能;

    具體關(guān)于如何配置Weblogic集群,我就不細(xì)說了。詳情可參考:Introduction to WebLogic Server Clustering

    8) Weblogic EJB調(diào)優(yōu)

    由于EJB2.0已經(jīng)很少項(xiàng)目在用了,EJB3.0再成熟一點(diǎn),我再補(bǔ)充這一部分吧!

    9) JDBC應(yīng)用調(diào)優(yōu)

    JDBC Connection Pool的調(diào)優(yōu)受制于WebLogic Server線程數(shù)的設(shè)置和數(shù)據(jù)庫進(jìn)程數(shù),游標(biāo)的大小。通常我們在一個(gè)線程中使用一個(gè)連接,所以連接數(shù)并不是越多越好,為避免兩邊的資源消耗,建議設(shè)置連接池的最大值等于或者略小于線程數(shù)。同時(shí)為了減少新建連接的開銷,將最小值和最大值設(shè)為一致。

    增加Statement Cache Size對于大量使用PreparedStatement對象的應(yīng)用程序很有幫助,WebLogic能夠?yàn)槊恳粋€(gè)連接緩存這些對象,此值默認(rèn)為10。在保證數(shù)據(jù)庫游標(biāo)大小足夠的前提下,可以根據(jù)需要提高Statement Cache Size。比如當(dāng)你設(shè)置連接數(shù)為25,Cache Size10時(shí),數(shù)據(jù)庫可能需要打開25*10=250個(gè)游標(biāo)。不幸的是,當(dāng)遇到與PreparedStatement Cache有關(guān)的應(yīng)用程序錯(cuò)誤時(shí),你需要將Cache Size設(shè)置為0

    盡管JDBC Connection Pool提供了很多高級參數(shù),在開發(fā)模式下比較有用,但大部分在生產(chǎn)環(huán)境下不需調(diào)整。這里建議最好不要設(shè)置測試表, 同時(shí)Test Reserved ConnectionsTest Released Connections也無需勾上。當(dāng)然如果你的數(shù)據(jù)庫不穩(wěn)定,時(shí)斷時(shí)續(xù),你就可能需要上述的參數(shù)打開。

    最后提一下驅(qū)動程序類型的選擇,Oracle為例,Oracle提供thin驅(qū)動和oci驅(qū)動,從性能上來講,oci驅(qū)動強(qiáng)于thin驅(qū)動,特別是大數(shù)據(jù)量的操作。但在簡單的數(shù)據(jù)庫操作中,性能相差不大,隨著thin驅(qū)動的不斷改進(jìn),這一弱勢將得到彌補(bǔ)。而thin驅(qū)動的移植性明顯強(qiáng)于oci驅(qū)動。所以在通常情況下建議使用thin驅(qū)動。而最新驅(qū)動器由于WebLogic server/bin目錄下的類包可能不是最新的,請以Oracle網(wǎng)站為準(zhǔn): http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html

    10) JSP調(diào)優(yōu)

    l???????? 設(shè)置jsp-param pageCheckSeconds=-1

    l???????? 設(shè)置serlet-reload-check=-1ServletReloadCheckSecs=-1

    l???????? 設(shè)置jsp-param precompile=true,關(guān)閉JSP預(yù)編譯選項(xiàng)。

    posted on 2006-01-13 12:47 TrampEagle 閱讀(951) 評論(0)  編輯  收藏 所屬分類: web
    主站蜘蛛池模板: 亚洲精品无码久久久久去q| 成在线人直播免费视频| 亚洲熟妇丰满多毛XXXX| 国产男女猛烈无遮挡免费视频 | 国内精品免费麻豆网站91麻豆| 一道本不卡免费视频| 亚洲精品无码久久久久久| 777亚洲精品乱码久久久久久 | 久久精品亚洲乱码伦伦中文| 四虎成人精品一区二区免费网站| 日本在线看片免费人成视频1000| AAAAA级少妇高潮大片免费看| 免费一区二区无码视频在线播放| 亚洲人成色4444在线观看| 亚洲人成网站在线观看播放动漫| 亚洲激情中文字幕| 国产成A人亚洲精V品无码性色| 亚洲美女高清一区二区三区| 国产免费人成视频在线观看| 日韩一区二区在线免费观看| 成人免费男女视频网站慢动作| 黄色网址免费大全| 99视频在线免费看| 无码人妻久久一区二区三区免费| 两个人日本免费完整版在线观看1| 国产免费久久精品99久久| 国产va免费观看| 一区二区三区免费视频观看| 黄网站色视频免费看无下截| 美女被爆羞羞网站在免费观看| WWW亚洲色大成网络.COM| 日韩成人精品日本亚洲| 无码亚洲成a人在线观看| 美女视频黄频a免费| 一级毛片大全免费播放下载| 一级毛片免费播放男男| 国产精品小视频免费无限app| 国产乱子伦精品免费视频| 99免费精品视频| 久久青草免费91观看| 亚州免费一级毛片|