金蝶K3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)_第1頁(yè)
金蝶K3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)_第2頁(yè)
金蝶K3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)_第3頁(yè)
金蝶K3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)_第4頁(yè)
金蝶K3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

金蝶K/3產(chǎn)品性能穩(wěn)定性優(yōu)化指導(dǎo)手冊(cè)(常見問題)(V3.0)金蝶軟件(中國(guó))研發(fā)中心K/3產(chǎn)品事業(yè)部.設(shè)計(jì)部解釋目的本手冊(cè)在于指導(dǎo)技術(shù)支持人員、分支機(jī)構(gòu)實(shí)施服務(wù)人員和客戶處理K/3系統(tǒng)應(yīng)用過程中產(chǎn)生的性能問題、中間層服務(wù)器問題等;同時(shí)也指導(dǎo)我們的實(shí)施服務(wù)人員和客戶在實(shí)施中如何避免將來可能發(fā)生的性能問題和中間層問題。讓研發(fā)人員、技術(shù)支持人員和分支機(jī)構(gòu)實(shí)施人員一起共同提高工作能力,快速反應(yīng)快速解決客戶的問題。適合對(duì)象 本手冊(cè)的主要閱讀對(duì)象是K/3系統(tǒng)研發(fā)人員、技術(shù)支持人員、實(shí)施人員、客戶服務(wù)人員和公司授權(quán)的有一定技術(shù)能力的客戶系統(tǒng)管理員。反饋本手冊(cè)是對(duì)研發(fā)在處理客戶性能和穩(wěn)定性問題的收集和總結(jié),所以涉及到的面有可能還不夠。完善本手冊(cè),提供一個(gè)更加完整的客戶問題解決指導(dǎo)方案,離不開大家的支持,所以大家在碰到相關(guān)的問題時(shí),請(qǐng)反饋K/3設(shè)計(jì)部,我們將及時(shí)對(duì)手冊(cè)更新。導(dǎo)讀 本手冊(cè)包括數(shù)據(jù)庫(kù)、中間層、客戶端和輔助分析工具介紹四大篇,分別介紹K/3客戶性能和穩(wěn)定性問題的處理方法、案例以及輔助工具,請(qǐng)您根據(jù)您的需要選擇相應(yīng)的章節(jié)閱讀。注意由于此手冊(cè)可能牽涉一些K/3在技術(shù)方面的細(xì)節(jié),為了防止有些人用意不良,斷章取義來攻擊K/3和公司,請(qǐng)注意保密。目錄TOC\h\z\t"功能標(biāo)題1,1,功能標(biāo)題2,2,功能標(biāo)題3,3"1.環(huán)境準(zhǔn)備 42. 問題處理流程和分析方法 72.1問題處理流程 72.2問題分類 82.2.1非K/3軟件問題 82.2.2K/3軟件問題 92.3問題分析方法 92.3.1排除法 92.3.2像醫(yī)生看病 102.3.3從現(xiàn)象入手 103. 網(wǎng)絡(luò)與Citrix應(yīng)用問題 113.1網(wǎng)絡(luò)引起的性能問題介紹 113.1.1網(wǎng)絡(luò)配置不符合K/3應(yīng)用需求,帶寬不足 113.1.2網(wǎng)絡(luò)不穩(wěn)定或存在丟包現(xiàn)象 113.1.3網(wǎng)絡(luò)安全性問題 123.2Citrix應(yīng)用引起的性能問題介紹 133.1.1Citrix應(yīng)用硬件配置指南 134. 數(shù)據(jù)庫(kù)性能問題 144.1數(shù)據(jù)庫(kù)常見性能問題介紹 144.1.1數(shù)據(jù)庫(kù)服務(wù)器硬件配置 144.1.2數(shù)據(jù)庫(kù)維護(hù)策略不當(dāng) 174.1.3數(shù)據(jù)庫(kù)表結(jié)構(gòu)不合理 214.1.4數(shù)據(jù)庫(kù)性能優(yōu)化方法總結(jié) 224.2數(shù)據(jù)庫(kù)性能常見問題解答 22Q:影響系統(tǒng)運(yùn)行性能的主要因素有哪些? 22Q:如何評(píng)價(jià)并發(fā)客戶數(shù)量? 22Q:數(shù)據(jù)庫(kù)服務(wù)器要注意什么事項(xiàng)? 225. 中間層性能和穩(wěn)定性問題 23中間層COM+性能和穩(wěn)定性問題優(yōu)化指導(dǎo) 235.1.1中間層服務(wù)器硬件配置 235.1.2中間層與客戶端不同域性能優(yōu)化 245.1.3COM+常用處理方法 245.1.4Win2003下中間層EBO組件包安全設(shè)置 305.1.5殺毒軟件對(duì)中間層的影響 325.1.6Windows2003中進(jìn)程管理 325.2COM+問題常用分析方法 325.2.1排除法 325.2.2信息收集綜合分析法 33中間層COM+問題解答 365.3.1如何解決COM+/MTS4097錯(cuò)誤事件? 365.3.2不支持事務(wù)的組件是否能放入COM+應(yīng)用程序中? 365.3.3如何在安裝完COM+ApplicationProxy之后,修改遠(yuǎn)端服務(wù)器名? 365.3.4VB在COM+和MTS中創(chuàng)建對(duì)象有何異同點(diǎn)? 365.3.5需要開啟哪些端口以使MSMQ能夠透過防火墻存?。?365.3.6把COM+應(yīng)用程序?qū)С鰹锳pplicationProxy后,安裝到WindowsNT或Windows98上時(shí),為什么CreateObject()會(huì)產(chǎn)生”classnotregistered”錯(cuò)誤? 365.3.7如果COM+應(yīng)用程序中的組件依賴于其他的組件或動(dòng)態(tài)鏈接庫(kù),將COM+應(yīng)用程序?qū)С鰹锳pplicationProxy并試圖安裝在Windows2000上時(shí),會(huì)出現(xiàn)下列錯(cuò)誤:ErrorregisteringCOM+Application.Contactyoursupportpersonnelformoreinformation。 365.3.8做大的查詢時(shí)COM+組件調(diào)用時(shí)間過長(zhǎng),此時(shí)若客戶端用戶人為結(jié)束進(jìn)程,COM+還是一直在轉(zhuǎn),需要幾分鐘后COM+才能釋放 375.3.9如何優(yōu)化進(jìn)程間通訊(包與包間的調(diào)用),提高性能 375.3.10防火墻導(dǎo)致COM+不能訪問的問題 375.3.11COM+包[安全屬性]設(shè)置中如果設(shè)置身份驗(yàn)證級(jí)別為無會(huì)有什么影響,對(duì)性能提升有無幫助? 375.3.12如何更好地部署COM+,需要遵循什么原則 375.3.13VB組件能否支持對(duì)象池 375.3.143G補(bǔ)償?shù)淖饔?375.3.15在中間層MODULE能不能執(zhí)行SQL 385.3.16.Net調(diào)用自動(dòng)COM+時(shí),并發(fā)性能較差 38中間層非COM+性能優(yōu)化 385.4.1停止K/3系統(tǒng)相關(guān)服務(wù) 385.4.2域服務(wù)器、中間層服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器分開部署 396. 客戶端性能問題 406.1客戶端性能問題介紹 406.1.1某些客戶端的速度比以往使用K/3慢一點(diǎn) 406.1.2某些局部功能速度太慢 406.1.3客戶端出現(xiàn)Automation錯(cuò)誤 406.1.4如何查看具體哪個(gè)組件存在性能問題 416.1.5關(guān)于趨勢(shì)防火墻與K/3的沖突 416.1.6使用了嚴(yán)重影響K/3系統(tǒng)性能的系統(tǒng)選項(xiàng) 426.1.7其他 466.2.5系統(tǒng)突然出現(xiàn)全面的死機(jī)現(xiàn)象 466.2.6客戶端出現(xiàn)“新事務(wù)不能登記到指定的事務(wù)處理器中” 47附錄1:SQLServer的大內(nèi)存管理 50環(huán)境準(zhǔn)備 客戶使用K3出現(xiàn)問題時(shí),導(dǎo)致的原因可能是多種多樣的,為了更好的確定導(dǎo)致問題的原因,我們需要核對(duì)一下系統(tǒng)的環(huán)境。操作系統(tǒng)WINDOWS2003是否安裝SP1以上的補(bǔ)丁,WINDOWS2000是否安裝SP4補(bǔ)丁32位系統(tǒng),物理內(nèi)存大小,對(duì)于操作系統(tǒng)可以支持最大內(nèi)存見 (下面設(shè)置需要重新啟動(dòng)才能生效)例如:multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="WindowsServer

2003DatacenterEdition"/PAE安裝病毒實(shí)時(shí)防護(hù)或者啟用微軟防火墻如果數(shù)據(jù)庫(kù)和中間層服務(wù)器啟用防護(hù),可以暫時(shí)停一段時(shí)間看是否性能有所改善,以確定是否防護(hù)產(chǎn)生的影響客戶端需要將K3的應(yīng)用放在例外中HOSTS文件(%SystemRoot%\system32\drivers\etc)中間層服務(wù)器將數(shù)據(jù)庫(kù)服務(wù)器的IP地址和名稱加到HOSTS文件中數(shù)據(jù)庫(kù)服務(wù)器將中間層服務(wù)器的IP地址和名稱加到HOSTS文件中如果數(shù)據(jù)庫(kù)內(nèi)存大于2GB,但物理內(nèi)存一直在2GB左右,檢查組策略中【內(nèi)存中鎖定頁(yè)面】是否設(shè)置(gpedit.msc)【計(jì)算機(jī)配置】/【windows設(shè)置】/【安全設(shè)置】/【本地策略】/【用戶權(quán)限分配】/【內(nèi)存中鎖定頁(yè)面】添加當(dāng)前機(jī)器下的SYSTEM用戶和登錄該機(jī)器的Administrators組中的用戶如果是SQLSERVER2005,不進(jìn)行上面的設(shè)置將無法啟用AWE設(shè)置中間層和數(shù)據(jù)庫(kù)服務(wù)器MSDTC設(shè)置(Windows2003+SP)是否如下 數(shù)據(jù)庫(kù)版本SQLSERVER2000標(biāo)準(zhǔn)版只支持最大2GB內(nèi)存需要支持超過2GB內(nèi)存,需要選擇SQLSERVER2000企業(yè)版本和SQLSERVER2005標(biāo)準(zhǔn)/企業(yè)版本如果操作系統(tǒng)為64位機(jī)器,建議安裝64位版本SQLSERVERSLQSERVER2005標(biāo)準(zhǔn)版支持4CPU【物理CPU】,超過4CPU【物理CPU】必須使用企業(yè)版本補(bǔ)丁SQLSERVER2000安裝SP4SQLSERVER2005安裝SP2如果在企業(yè)管理器中看到阻塞導(dǎo)致的情況是同一個(gè)SPID把自己阻塞了,檢查處理器并行查詢分析器中執(zhí)行sp_configure'maxdegreeofparallelism',如果返回為0,運(yùn)行下面語(yǔ)句: sp_configure'showadvancedoptions',1RECONFIGUREGOsp_configure'maxdegreeofparallelism',1RECONFIGUREGOsp_configure'showadvancedoptions',0RECONFIGURE32位系統(tǒng)下AWE設(shè)置(如物理內(nèi)存為8GB設(shè)置數(shù)據(jù)庫(kù)的最大內(nèi)存為6GB)在查詢分析器中執(zhí)行sp_configure'aweenabled',如果返回為0,表示未啟用AWE。sp_configure'showadvancedoptions',1RECONFIGUREGOsp_configure'aweenabled',1RECONFIGUREGOsp_configure'maxservermemory',6144RECONFIGUREGO數(shù)據(jù)庫(kù)的故障還原模式是否為【簡(jiǎn)單】,如果采用事務(wù)日志備份,不需要修改故障還原模式數(shù)據(jù)庫(kù)的【自動(dòng)收縮】屬性是否取消再查詢分析器中執(zhí)行DBCCSHOWCONTIG(ICSTOCKBILL)查看表的索引碎片情況,如果【掃描密度】低于85%,那需要重新執(zhí)行索引重建工作數(shù)據(jù)庫(kù)文件和TEMPDB文件所在磁盤是否有可用空間組件包設(shè)置組件包啟用帳號(hào)設(shè)置為【指定用戶】或者將【交互式用戶】,需要將【調(diào)用的身份驗(yàn)證級(jí)別】設(shè)置為【連接】,【模擬級(jí)別】為【標(biāo)識(shí)】組件包的【安全級(jí)別】設(shè)置為【僅在進(jìn)程級(jí)別執(zhí)行權(quán)限檢查】二次開發(fā)如果有自定義的報(bào)表,是否設(shè)置臟讀的事務(wù)隔離級(jí)別,即在報(bào)表語(yǔ)句前面加上SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTED網(wǎng)絡(luò)在DOS模式下執(zhí)行ping【服務(wù)器IP地址】-l1204–n100不能出現(xiàn)丟包現(xiàn)象,如果出現(xiàn)丟包的現(xiàn)象,需要檢查網(wǎng)絡(luò)問題處理流程和分析方法2.1問題處理流程一般問題的處理步驟如下:客戶反饋性能或穩(wěn)定性問題,不要著急,按照如圖上的步驟我們逐步分析,正確的方法是解決問題的前提,下面為你快速定位問題作一個(gè)簡(jiǎn)單的說明:第一步:引導(dǎo)客戶了解具體問題;當(dāng)客戶出現(xiàn)性能問題時(shí),首先你要找到發(fā)現(xiàn)該問題的客戶關(guān)鍵人員(一般都是操作人員),然后和他進(jìn)行交流溝通。找到關(guān)鍵人員以后,引導(dǎo)客戶交流,確認(rèn)問題所在,確認(rèn)詳細(xì)的操作步驟,問題發(fā)生的模塊,相關(guān)的業(yè)務(wù)場(chǎng)景和機(jī)器環(huán)境等。經(jīng)過前面的交流,如果有可能首先要落實(shí)問題的真實(shí)性,避免前面描述和交流導(dǎo)致的錯(cuò)誤引導(dǎo)。第二步:收集用戶計(jì)算機(jī)信息; 自動(dòng)收集服務(wù)器的事件日志,系統(tǒng)配置環(huán)境,操作系統(tǒng)版本等信息。第三步:判斷問題來源根據(jù)獲取的信息,定位問題對(duì)于系統(tǒng)的日志文件和數(shù)據(jù)庫(kù)日志文件中的異常。在網(wǎng)站查找相關(guān)的技術(shù)或者解決文檔,看是否可以解決問題。第四步:參照案例解決問題初步定位客戶問題以后,首先查看一下是否存在類似案例,如果有,可以參照案例集,我們就能夠快速有效解決問題。如果沒有類似案例,我們可以參照相應(yīng)的分析方法進(jìn)行分析定位,解決問題(見下面章節(jié)的問題分析和解決)。第五步:定期收縮數(shù)據(jù)庫(kù)和定時(shí)優(yōu)化帳套第六步:檢查數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)是否合理常見有:二次開發(fā)的表沒有索引,造成性能隱患;不恰當(dāng)?shù)挠|發(fā)器和游標(biāo)的使用,大數(shù)據(jù)表缺少聚集索引。對(duì)于K3已經(jīng)存在的數(shù)據(jù)表,可以根據(jù)用戶實(shí)際使用業(yè)務(wù)情況進(jìn)行索引優(yōu)化。第七步:尋找合適的補(bǔ)丁第八步:與研發(fā)溝通,獲得解決方案以上描述的是最基本的步驟,對(duì)于客戶的性能問題我們最好是及早解決,如果不能解決盡快反饋到研發(fā),往往發(fā)現(xiàn)有些客戶剛開始有性能問題時(shí),通過重啟服務(wù)器等方法湊合。當(dāng)客戶這樣使用一段時(shí)間后可能會(huì)越來越不滿滿意,導(dǎo)致后面解決問題的阻力很大,所以要積極面對(duì),盡早解決。2.2問題分類2非K/3軟件問題這類問題大多是K/3系統(tǒng)的運(yùn)行環(huán)境問題,還有些是應(yīng)用和實(shí)施問題,下面列舉一些問題的描述,主要幫助認(rèn)識(shí)問題的本質(zhì)分類。2.1網(wǎng)絡(luò)問題網(wǎng)絡(luò)出現(xiàn)問題時(shí)一般有些客戶端不能操作并且有明顯錯(cuò)誤提示。一般表現(xiàn)為網(wǎng)絡(luò)不暢通,網(wǎng)絡(luò)帶寬不足,網(wǎng)絡(luò)不穩(wěn)定有丟包情況,網(wǎng)絡(luò)安全性問題等,詳細(xì)請(qǐng)參考手冊(cè)第五章。2.2硬件配置硬件配置尤其是服務(wù)器的硬件配置問題,在很多客戶那兒發(fā)現(xiàn)硬件配置偏低,從而引起性能或穩(wěn)定性問題。數(shù)據(jù)庫(kù)服務(wù)器建議使用高性能配置的機(jī)器,或通過增加CPU和內(nèi)存來提升服務(wù)器性能。因?yàn)閿?shù)據(jù)庫(kù)是系統(tǒng)的所依賴的平臺(tái),如果平臺(tái)本身有問題,那么應(yīng)用在上面的系統(tǒng)肯定也會(huì)有問題。對(duì)于硬件配置盡可能在實(shí)施時(shí)防患于未然,否則如果在使用過程中出現(xiàn)問題時(shí)再提議客戶升級(jí)硬件,可能會(huì)受到客戶的抵制。一定要對(duì)客戶的未來業(yè)務(wù)量有一定的預(yù)估,給出合理的硬件配置方案。具體的應(yīng)用配置請(qǐng)參考后面各個(gè)章節(jié)的硬件配置部分。2.3軟件環(huán)境軟件環(huán)境主要是指數(shù)據(jù)庫(kù)服務(wù)器的操作系統(tǒng)和SQLServer版本,以及安裝的其它軟件。在此特別強(qiáng)調(diào)數(shù)據(jù)庫(kù)服務(wù)器的操作系統(tǒng)盡量采用WIN2003企業(yè)版本,SQLServer使用SQLServer2000企業(yè)版,并至少安裝SP4補(bǔ)丁程序。關(guān)于客戶端盡量采用WIN2000操作系統(tǒng),不要使用WIN98。這樣有助于K/3系統(tǒng)更加健壯的運(yùn)行。2.4實(shí)施和應(yīng)用問題有些性能問題可以通過合理的實(shí)施和應(yīng)用來避免,主要是通過調(diào)整系統(tǒng)參數(shù)或使用方式讓系統(tǒng)速度得到提升。例如序時(shí)簿的查詢?cè)谶^濾界面少選擇要顯示的列,盡可能使用嚴(yán)格的過濾條件,不要使用顯示關(guān)聯(lián)標(biāo)志的系統(tǒng)選項(xiàng)都會(huì)一定程度的提高系統(tǒng)速度。這些問題在手冊(cè)的不同部分會(huì)有相關(guān)的內(nèi)容,以后也會(huì)逐步補(bǔ)充。在這里還要強(qiáng)調(diào)一點(diǎn)在實(shí)施中做的二次開發(fā)很有可能引發(fā)性能問題。對(duì)于有二次開發(fā)的系統(tǒng)一定要對(duì)二次開發(fā)作檢查,看看是否有性能問題。2K/3軟件問題對(duì)任何軟件,都可能會(huì)存在一定的性能問題。K/3作為一個(gè)復(fù)雜的企業(yè)應(yīng)用軟件,同樣也不可避免會(huì)存在性能問題,這需要我們積極去解決。2.1局部功能速度太慢,不能滿足日常的業(yè)務(wù)要求這些慢的功能點(diǎn)大多數(shù)是一些查詢和計(jì)算功能,如物料(商品)收發(fā)匯總表查詢,期末結(jié)賬,成本計(jì)算等功能。執(zhí)行慢的原因在于業(yè)務(wù)處理邏輯復(fù)雜,需要訪問的數(shù)據(jù)量很龐大,需要使用更多的系統(tǒng)資源,從而可能導(dǎo)致所有其它功能點(diǎn)都變得很慢,或者系統(tǒng)一段時(shí)間無法響應(yīng)的(實(shí)際是得不到系統(tǒng)資源,處于長(zhǎng)期的等待中)現(xiàn)象。當(dāng)然也有些功能可能是由于當(dāng)初設(shè)計(jì)的時(shí)候考慮不周,算法不夠優(yōu)化,導(dǎo)致單項(xiàng)功能的性能較差,對(duì)于這樣的問題,可以錯(cuò)開業(yè)務(wù)使用高峰,優(yōu)化算法,或?qū)?shù)據(jù)庫(kù)建立索引來提升性能。2.2整體應(yīng)用存在性能問題有些性能問題是由于當(dāng)時(shí)設(shè)計(jì)系統(tǒng)時(shí)沒有考慮到數(shù)據(jù)量的規(guī)模,當(dāng)數(shù)據(jù)量達(dá)到一定規(guī)模后系統(tǒng)運(yùn)行不能達(dá)到預(yù)期。由于這些問題從軟件本身來說可能牽涉很多模塊和代碼,如果優(yōu)化需要投入很多的資源,只能在新版產(chǎn)品中改進(jìn)。如SP1中已經(jīng)做了全面優(yōu)化。2.3系統(tǒng)突然出現(xiàn)全面的等待現(xiàn)象對(duì)這類問題,大多數(shù)情況是客戶端提示“調(diào)用程序忙,切換到…”,“正在調(diào)用中間層…”等提示,首先要判斷是否網(wǎng)絡(luò)或硬件問題;然后看數(shù)據(jù)庫(kù)是否阻塞,COM+是否出現(xiàn)問題等等,否則有可能是組件本身存在問題,具體可以參考下面各個(gè)章節(jié)的內(nèi)容。2.4有規(guī)律的在某個(gè)時(shí)段系統(tǒng)速度變慢大多數(shù)是月末,或者某段業(yè)務(wù)高峰期。在發(fā)生問題的時(shí)段可能會(huì)是某一個(gè)計(jì)算型功能如結(jié)賬操作耗用系統(tǒng)資源太嚴(yán)重,或者是并發(fā)程度高引發(fā)系統(tǒng)資源不足.2.3問題分析方法 在處理客戶問題時(shí),我們要對(duì)問題本質(zhì)有一個(gè)清晰的認(rèn)識(shí),同時(shí)我們要采取有效的方法去逐步發(fā)現(xiàn)和解決問題。2排除法在處理性能問題時(shí),排除法是最有效的方法。因?yàn)榇蠖鄶?shù)客戶性能或穩(wěn)定性問題,尤其是無規(guī)律,全面性的性能或穩(wěn)定性問題,定位問題所在是很重要的。當(dāng)然對(duì)于那些能夠明確定位的問題,可以直接進(jìn)入下面的章節(jié)尋求解決方法。首先看看是否是非軟件的問題。網(wǎng)絡(luò)是否暢通,硬件配置是否合理,操作系統(tǒng)和SQLServer是否符合建議性的要求(如查看數(shù)據(jù)庫(kù)表的統(tǒng)計(jì)信息,是否存在碎片),應(yīng)用方式是否合理。如果是軟件問題主要就是定位是何功能影響了系統(tǒng)的運(yùn)行速度。首先可以參照2.1網(wǎng)絡(luò)與Citrix應(yīng)用問題,HYPERLINK《SQLServer的大內(nèi)存管理》設(shè)置4.3數(shù)據(jù)庫(kù)實(shí)例默認(rèn)選擇【并行】導(dǎo)致死鎖和阻塞問題1:由于啟用了【并行】可能導(dǎo)致死鎖。主要表現(xiàn)為同一功能,隔一段時(shí)間就會(huì)出現(xiàn)死鎖,此時(shí)客戶端現(xiàn)象為:如果出現(xiàn)這樣的情況時(shí),請(qǐng)?jiān)赟QL查詢分析器中執(zhí)行dbcctraceon(1204,3605,-1)【SQLSERVER2000跟著標(biāo)記為1204,SQLSERVER2005中為1222】,將死鎖的信息記錄到數(shù)據(jù)庫(kù)的日志中。然后等待場(chǎng)景重現(xiàn),再出現(xiàn)后這時(shí)候運(yùn)行數(shù)據(jù)庫(kù)的企業(yè)管理器,查看數(shù)據(jù)庫(kù)的日志,將會(huì)看到類似下面的信息:ResType:LockOwnerStype:'OR'Mode:SSPID:64ECID:13Ec:(0x8E0480C0)Value:0xaaRequestedBy:Owner:0xa9617ba0Mode:SFlg:0x0Ref:1Life:00000001SPID:64ECID:14WaitList:PAG:16:1:319244CleanCnt:5Mode:IXFlags:0x2Node:4Producer:XidSlot:7,EC=0x8d26a0cProducer:XidSlot:5,EC=0x8dffc0c0,SPID:64,ECID:14,BlockingProducer:XidSlot:4,EC=0x8b6ae0c0,SPID:64,ECID:15,BlockingProducer:XidSlot:3,EC=0x8e0480c0,SPID:64,ECID:13,BlockingProducerList::Consumer:XidSlot:6,EC=0x8b4dc0c0,SPID:64,ECID:2,NotBlockingConsumer:XidSlot:2,EC=0x8db4e0c0,SPID:64,ECID:4,NotBlockingConsumer:XidSlot:1,EC=0x8deb80c0,SPID:64,ECID:3,NotBlockingConsumer:XidSlot:0,EC=0x8a00e0c0,SPID:64,ECID:1,NotBlockingConsumerList::Coordinator:EC=0x8885d560,SPID:64,ECID:0,NotBlockingPort:0x800b0480XidSlot:0,EC:0x8a00e0c0,ECID:1(Consumer),ExchangeWaiNode:3 這樣可以確定是“涉及并行的死鎖”,即SPID為64的進(jìn)程出現(xiàn)了自我阻塞而導(dǎo)致的死鎖,該死鎖主要是SQLSERVER執(zhí)行的策略上的問題,SQL語(yǔ)句的寫法上可以解決,但在不同的服務(wù)器上可能有不同表現(xiàn),所以通過禁用并行來解決。如果要開啟處理器支持并行計(jì)劃,請(qǐng)確保數(shù)據(jù)庫(kù)服務(wù)器的配置足夠好【如16CPU【物理CPU】,32GB內(nèi)存】 解決辦法:如果是早期超線程的機(jī)器,需要關(guān)閉超線程,修改CMOSa):開機(jī)--〉進(jìn)入BIOS設(shè)置畫面b):將HYPER-THREADING設(shè)為DISAB取消并行執(zhí)行;sp_configure'showadvancedoptions',1RECONFIGUREGOsp_configure'maxdegreeofparallelism',1GOsp_configure'showadvancedoptions',0RECONFIGURE根據(jù)提示,重啟數(shù)據(jù)庫(kù)服務(wù)4.4與17883錯(cuò)誤相關(guān) 如果出現(xiàn)數(shù)據(jù)庫(kù)HANG,查看數(shù)據(jù)的日志文件,可以看到類似下面的信息:server 錯(cuò)誤:17883,嚴(yán)重度:1,狀態(tài):0DBCCTRACEON208,服務(wù)器進(jìn)程ID(SPID)60。server 進(jìn)程191:0(8d0)UMS上下文0x074BECC8似乎不是在調(diào)度程序0上生成的。出現(xiàn)上面的問題時(shí),可以確認(rèn)是SQLSERVER本身的問題,產(chǎn)生該問題的原因比較多,微軟提供的補(bǔ)丁SP4也未能解決所有的17883問題。解決方式:(本補(bǔ)丁只針對(duì)SP4)Password:

lUn)1p3h如果SQLSERVER已經(jīng)出了最新的補(bǔ)丁,則直接升級(jí)到最新的補(bǔ)丁即可。相關(guān)17883問題描述:請(qǐng)查看微軟網(wǎng)站的815056,319892,810885等文章4數(shù)據(jù)庫(kù)維護(hù)策略不當(dāng)對(duì)于任何一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),日常的維護(hù)是必要的,在日常的系統(tǒng)維護(hù)中分支機(jī)構(gòu)應(yīng)該引導(dǎo)客戶的系統(tǒng)管理員做維護(hù),防性能問題于未然。但有時(shí)候不當(dāng)?shù)木S護(hù)策略也對(duì)性能造成一定的影響。結(jié)合常見維護(hù)策略進(jìn)行介紹,旨在防性能問題與未然。在應(yīng)用K/3時(shí)為了提升整體應(yīng)用性能,數(shù)據(jù)庫(kù)需要做如下的維護(hù)策略:4.1設(shè)置數(shù)據(jù)庫(kù)故障還原模型為“簡(jiǎn)單”在SQLServer企業(yè)管理器中選擇一個(gè)數(shù)據(jù)庫(kù),右鍵點(diǎn)擊彈出快捷菜單,選擇“屬性”,如下圖界面。數(shù)據(jù)庫(kù)的故障還原模型建議使用“簡(jiǎn)單”模式。如果采用“簡(jiǎn)單”以外的故障還原模式,將可能產(chǎn)生大量的日志文件從而影響數(shù)據(jù)庫(kù)系統(tǒng)性能注意:選擇簡(jiǎn)單模式后數(shù)據(jù)庫(kù)將不能做事務(wù)日志備份。4.2取消“自動(dòng)收縮”數(shù)據(jù)庫(kù)選項(xiàng)將數(shù)據(jù)庫(kù)“屬性”中的“自動(dòng)收縮日志”選項(xiàng)取消(如.1下圖)。由于需要頻繁檢查數(shù)據(jù)庫(kù)的空間使用情況以及自動(dòng)收縮有可能發(fā)生在數(shù)據(jù)庫(kù)文件自動(dòng)增長(zhǎng)之后而增加額外的開銷。4.3定期收縮數(shù)據(jù)庫(kù)SQLServer數(shù)據(jù)庫(kù)的事務(wù)日志會(huì)由于各種原因,有時(shí)候暴漲,事務(wù)日志太大有時(shí)候會(huì)引發(fā)性能問題,因此要有計(jì)劃地收縮數(shù)據(jù)庫(kù)來縮小事務(wù)日志。收縮數(shù)據(jù)庫(kù)時(shí)不但要收縮賬套數(shù)據(jù)庫(kù),同時(shí)也要收縮SQLServer自帶的TEMPDB數(shù)據(jù)庫(kù)。可以通過SQLServer企業(yè)管理器做一個(gè)收縮計(jì)劃,在沒有業(yè)務(wù)運(yùn)行的時(shí)候定期做收縮,盡量不要在平時(shí)做收縮操作,因?yàn)槭湛s操作耗用資源很多,且需要一段時(shí)間。在SQLServer企業(yè)管理器中選擇一個(gè)數(shù)據(jù)庫(kù),右鍵點(diǎn)擊彈出快捷菜單,選擇“所有任務(wù)”〉“收縮數(shù)據(jù)庫(kù)”,如下圖界面。選擇根據(jù)本調(diào)度來收縮數(shù)據(jù)庫(kù)(收縮的頻率不要過于頻繁,否則容易產(chǎn)生更多的碎片,導(dǎo)致數(shù)據(jù)庫(kù)性能更差),然后點(diǎn)擊更改按鈕,如下圖界面做調(diào)度安排。4.4定期優(yōu)化帳套在SQLServer運(yùn)行一段時(shí)間后,表空間和索引的存儲(chǔ)可能會(huì)產(chǎn)生碎片,這會(huì)極大的影響系統(tǒng)的性能。數(shù)據(jù)庫(kù)表是否存在碎片可以通過在SQL查詢分析器中使用下面的命令來查看:如:dbccshowcontig(icstockbill)顯示結(jié)果為DBCCSHOWCONTIG正在掃描'ICStockBill'表...表:'ICStockBill'(1180583294);索引ID:1,數(shù)據(jù)庫(kù)ID:15已執(zhí)行TABLE級(jí)別的掃描。-掃描頁(yè)數(shù):9935-掃描擴(kuò)展盤區(qū)數(shù):1252-擴(kuò)展盤區(qū)開關(guān)數(shù):8485-掃描密度[最佳值:實(shí)際值]:14.64%[1242:8486]-邏輯掃描碎片:41.35%-擴(kuò)展盤區(qū)掃描碎片:60.46%-平均頁(yè)密度(完整):53.50%DBCC執(zhí)行完畢。如果DBCC輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。可以看出icstockbill表的掃描密度為14.64%,邏輯掃描碎片為41.35%;擴(kuò)展盤區(qū)掃描碎片為60.46%說明存在較多的碎片,并且統(tǒng)計(jì)信息很多記錄都未進(jìn)行更新,這將嚴(yán)重影響使用該表時(shí)的查詢速度,需要對(duì)該表進(jìn)行重建索引。那么我們使用dbccdbreindex(icstockbill)對(duì)icstockbill表重建索引,再對(duì)icstockbill表進(jìn)行統(tǒng)計(jì)可以看到下面的結(jié)果:DBCCSHOWCONTIG正在掃描'ICStockBill'表...表:'ICStockBill'(1180583294);索引ID:1,數(shù)據(jù)庫(kù)ID:15已執(zhí)行TABLE級(jí)別的掃描。-掃描頁(yè)數(shù):5444-掃描擴(kuò)展盤區(qū)數(shù):682-擴(kuò)展盤區(qū)開關(guān)數(shù):681-掃描密度[最佳值:實(shí)際值]:99.85%[681:682]-邏輯掃描碎片:0.00%-擴(kuò)展盤區(qū)掃描碎片:29.91%-平均頁(yè)密度(完整):97.66%DBCC執(zhí)行完畢。如果DBCC輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系??梢钥闯鰅cstockbill表的掃描密度為99.85%,邏輯掃描碎片為0.00%;擴(kuò)展盤區(qū)掃描碎片為29.91%,數(shù)據(jù)頁(yè)從原來的9935調(diào)整為5444,說明碎片已經(jīng)得到了很好的整理??梢酝ㄟ^兩種方式進(jìn)行整理,我們稱之為“優(yōu)化帳套”,下面介紹兩種方法:方法1:只對(duì)部分核心表進(jìn)行整理,選擇“賬套管理”—〉“數(shù)據(jù)庫(kù)”—〉“優(yōu)化帳套”,缺點(diǎn)是賬套優(yōu)化功能不能做調(diào)度定時(shí)執(zhí)行,需要每次手工點(diǎn)擊執(zhí)行;方法2:在SQLServer企業(yè)管理器中做維護(hù)計(jì)劃,使用企業(yè)管理器中管理—〉數(shù)據(jù)庫(kù)維護(hù)計(jì)劃—〉新建維護(hù)計(jì)劃向?qū)В诘谌?,選擇重新組織數(shù)據(jù)和索引頁(yè),如圖4。 由于碎片是由于日常的業(yè)務(wù)操作導(dǎo)致表中的數(shù)據(jù)處于不斷的刪除,新增中造成的,所以應(yīng)該定期進(jìn)行優(yōu)化帳套的操作。建議每周執(zhí)行一次,同時(shí)避開使用K/3系統(tǒng)的高峰期。 注:如果通過重建索引后,掃描密度,邏輯掃描碎片和擴(kuò)展盤區(qū)掃描碎片依然不能得到較大的下降,這時(shí)候請(qǐng)先記錄下原來建立的索引信息,手工刪除所有的索引后,然后再重新建立索引來達(dá)到降低碎片。 另外導(dǎo)致該問題還有可能由于數(shù)據(jù)庫(kù)文件本身的碎片過多,這時(shí)候可以通過進(jìn)行磁盤碎片整理后,備份后還原新賬套的方式來處理。4.1.3數(shù)據(jù)庫(kù)表結(jié)構(gòu)不合理針對(duì)客戶一些特殊需求我們都是以二次開發(fā)方式來滿足,因?yàn)殚_發(fā)周期比較短,更多關(guān)注功能實(shí)現(xiàn),忽視了性能問題,常見有:二次開發(fā)的表沒有索引;不恰當(dāng)?shù)挠|發(fā)器和游標(biāo)的使用;不合適的事務(wù)隔離級(jí)別;以及不正確的SQL語(yǔ)句寫法。對(duì)于K/3已經(jīng)存在的數(shù)據(jù)表,可以根據(jù)用戶實(shí)際使用業(yè)務(wù)情況進(jìn)行索引優(yōu)化。這個(gè)需要一定的數(shù)據(jù)庫(kù)知識(shí),可以通過使用SQLServer事件探查器和查詢分析器,分析執(zhí)行時(shí)間長(zhǎng)的SQL,對(duì)于經(jīng)常出現(xiàn)在where子句中的字段,并且該字段對(duì)應(yīng)的值在數(shù)據(jù)表中重復(fù)數(shù)不高時(shí)可以考慮對(duì)該字段建立索引,還有就是觀察表是否主要用于查詢(SELECT)的表,則索引可以根據(jù)實(shí)際情況多建。但索引也并非越多越好應(yīng)該限制在10個(gè)以內(nèi)。 對(duì)于二次開發(fā)的數(shù)據(jù)表,可以參考下面的原則:1)必須對(duì)表建立聚集索引2)選擇WHERE,ORDERBY,GROUPBY子句中的字段建立為索引3)盡量不要使用觸發(fā)器和在觸發(fā)器和存儲(chǔ)過程中使用游標(biāo)4)報(bào)表采用臟讀的事務(wù)隔離級(jí)別5)不要關(guān)聯(lián)不必要的表6)可以關(guān)聯(lián)物理表的不要關(guān)聯(lián)視圖7)排序操作通過控件而不是SQL語(yǔ)句來實(shí)現(xiàn)8)WHERE子句中不要對(duì)字段使用函數(shù)進(jìn)行比較操作 4.1.4數(shù)據(jù)庫(kù)性能優(yōu)化方法總結(jié)1、合理的硬件配置2、改變和調(diào)整應(yīng)用方式3、正確的數(shù)據(jù)庫(kù)維護(hù)策略4、優(yōu)化數(shù)據(jù)庫(kù)索引5、與研發(fā)溝通,獲得解決方案4.2數(shù)據(jù)庫(kù)性能常見問題解答Q:影響系統(tǒng)運(yùn)行性能的主要因素有哪些?總體來說有以下幾方面:數(shù)據(jù)量并發(fā)客戶端的數(shù)量硬件配置和軟件環(huán)境配置二次開發(fā)數(shù)據(jù)授權(quán)Q:如何評(píng)價(jià)并發(fā)客戶數(shù)量?正確的評(píng)價(jià)客戶客戶端的數(shù)量:在業(yè)務(wù)高峰期同時(shí)使用的客戶端的數(shù)量,并發(fā)數(shù)越多,速度越慢,很容易造成阻塞甚至死機(jī)。Q:數(shù)據(jù)庫(kù)服務(wù)器要注意什么事項(xiàng)?1、強(qiáng)調(diào)數(shù)據(jù)庫(kù)服務(wù)器的操作系統(tǒng)盡量采用WINDOWSSERVER2003,SQLServer使用SQLServer2000企業(yè)版或者SQLSERVER2005。確認(rèn)SQLServer2000是否已經(jīng)打上SP4補(bǔ)丁,SQLSERVER2005是否打上SP2補(bǔ)丁。2、盡量將數(shù)據(jù)庫(kù)服務(wù)器和中間層服務(wù)器分開在兩臺(tái)機(jī)器上部署,數(shù)據(jù)庫(kù)建議使用64位(x64)服務(wù)器,并配置雙路或四路處理器,處理器推薦Xeon雙核/四核G或以上,內(nèi)存8G或以上,SAS或FC-SAN存儲(chǔ)系統(tǒng),1K/3數(shù)據(jù)庫(kù)的性能案例請(qǐng)參照《金蝶K/3》中間層性能和穩(wěn)定性問題5.1中間層COM+性能和穩(wěn)定性問題優(yōu)化指導(dǎo)本章主要對(duì)目前K/3中間層應(yīng)用中與性能穩(wěn)定性相關(guān)的問題進(jìn)行描述,包括中間層服務(wù)器配置、COM+組件掛起、CPU100%、Crash,內(nèi)存泄露等問題癥狀,以提升中間層應(yīng)用的整體性能和穩(wěn)定性。5中間層服務(wù)器硬件配置中間層的任務(wù)是運(yùn)行K/3系統(tǒng)的業(yè)務(wù)組件,一個(gè)中間層服務(wù)器往往要為多個(gè)客戶端提供服務(wù),因此對(duì)中間層機(jī)器的配置要求一般較高,以提升系統(tǒng)應(yīng)用的并發(fā)能力。經(jīng)濟(jì)型配置建議(100個(gè)在線用戶以內(nèi)應(yīng)用)項(xiàng)目配置OSWindowsServer2003標(biāo)準(zhǔn)版+最新SP(目前SP2)CPU雙核Xeon5100系列,配置單路CPU,合共2物理核心內(nèi)存2-4GB存儲(chǔ)UltraSCSI或SAS,RAID1或RAID5網(wǎng)絡(luò)1000 標(biāo)準(zhǔn)型配置(100-200個(gè)在線用戶應(yīng)用)項(xiàng)目配置OSWindowsServer2003標(biāo)準(zhǔn)版+最新SP(目前SP2)CPU雙核Xeon5100系列,配置雙路CPU,合共4物理核心內(nèi)存4GB存儲(chǔ)UltraSCSI或SAS,RAID1或RAID5網(wǎng)絡(luò)1000高端應(yīng)用(200-400個(gè)在線用戶應(yīng)用)項(xiàng)目配置OSWindowsServer2003標(biāo)準(zhǔn)版+最新SP(目前SP2)CPU四核Xeon5300系列,配置單路CPU(可擴(kuò)雙路),合共4物理核心內(nèi)存4-8GB存儲(chǔ)SAS,RAID1或RAID5網(wǎng)絡(luò)1000業(yè)務(wù)量的大小,客戶端的數(shù)目會(huì)影響中間層服務(wù)器的處理和響應(yīng)能力,通過增加CPU、內(nèi)存可以對(duì)性能的提升帶來一定的好處,但這并不是萬(wàn)能的,當(dāng)達(dá)到一定的并發(fā)數(shù)量后,配置的提升可能對(duì)性能的改進(jìn)成效并不明顯,此時(shí)應(yīng)該考慮中間層的分布處理。 中間層使用部門級(jí)的服務(wù)器即可。根據(jù)實(shí)際測(cè)試的結(jié)果,K/3系統(tǒng)中,一臺(tái)配置為:主流雙路雙核XeonCPU、2GB內(nèi)存的中間層服務(wù)器,所能負(fù)載的并發(fā)用戶數(shù)為100個(gè)左右。在超過該并發(fā)數(shù)目時(shí),可通過提升服務(wù)器的硬件配置解決,當(dāng)單臺(tái)服務(wù)器增加配置仍無法滿足性能要求時(shí),此時(shí)需要采用多臺(tái)中間層服務(wù)器進(jìn)行分布式處理。5中間層與客戶端不同域性能優(yōu)化客戶端和中間層最好是配置在同一域中,如果無法配置在同一域中??梢孕薷慕M件服務(wù)中COM+組件的安全驗(yàn)證選項(xiàng),如下所示。降低身份驗(yàn)證級(jí)別,能夠在一定程度上改善調(diào)用中間層組件的性能。另外,使用組件信任注冊(cè)中間層組件,以提升安全性或降低域服務(wù)器負(fù)載。采用信任注冊(cè),需要將調(diào)用的身份驗(yàn)證級(jí)別設(shè)置為【連接】,模擬級(jí)別設(shè)置為【標(biāo)識(shí)】5.1.3COM+常用處理方法 這里先列出所有常見的處理COM+問題的方法,后面針對(duì)COM+的掛起、CPU100%、性能問題、Crash,內(nèi)存泄露問題的分析和處理會(huì)相應(yīng)地說明各類問題可以使用哪些常用的處理方法。遇到相關(guān)中間層COM+問題時(shí),你可以嘗試下面的解決方案看能否解決問題。 出現(xiàn)這些問題時(shí),可以在系統(tǒng)的事件查看器中查看到相應(yīng)關(guān)于COM+,MSDTC,DCOM類別的錯(cuò)誤和警告信息【通過CMD模式下運(yùn)行打開事件查看器】。重裝MSDTC方法:在CMD模式下運(yùn)行msdtc–uninstall,然后重啟,運(yùn)行msdtc–install重新安裝說明:如果在日志中發(fā)現(xiàn)MSDTC服務(wù)自動(dòng)停止的情況,或者你的機(jī)器是克隆并出現(xiàn)事務(wù)無法提交,那么可以嘗試重新安裝MSDTC。注意:該操作需要重啟電腦!MSDTC的Log文件路徑方法:打開組件服務(wù)—我的電腦屬性—MSDTC頁(yè)簽,檢查MSDTC的Log文件路徑是否是%SystemRoot%\System32\Dtclog說明:如果出現(xiàn)MSDTC無法啟動(dòng)的問題,請(qǐng)檢查MSDTC的Log文件路徑是否正確。配置線程(Forwindows2000)方法:修改注冊(cè)表,HKEY_LOCAL_MACHINE\Software\Microsoft\COM3\STAThreadPoolValuename:EmulateMTSBehaviorDatatype:REG_DWORDValuedata:0x64讓單個(gè)COM+VB組件同時(shí)服務(wù)最多100個(gè)線程,以提高處理并發(fā)請(qǐng)求的數(shù)量。說明:WINDOWS啟動(dòng)的每個(gè)進(jìn)程,所允許的STA線程數(shù),一般為7+CPU個(gè)數(shù),默認(rèn)最大為10*CPU個(gè)數(shù),當(dāng)并發(fā)用戶較多時(shí),在一個(gè)進(jìn)程池內(nèi)組件的線程數(shù)量超過此數(shù)值時(shí),組件的調(diào)用會(huì)發(fā)生阻塞,也容易導(dǎo)致組件崩潰,這也是產(chǎn)生“COM+4689錯(cuò)誤:運(yùn)行時(shí)環(huán)境檢測(cè)到其內(nèi)部狀態(tài)存在不一致。這說明進(jìn)程中存在潛在的不穩(wěn)定性,可能是由于COM+應(yīng)用程序中運(yùn)行自定義組件、COM+應(yīng)用程序使用的組件或其他因素引起的。d:\srv03rtm\com\complus\src\comsvcs\threads\stathreadpool.cpp(1223)中的錯(cuò)誤,hr=8000ffff:CSTAThreadPool:Unabletogetbindthread.”的原因。由于vb組件對(duì)多線程支持較差,所以需要通過修改注冊(cè)表,增加最大線程數(shù),來解決此問題。注意:改完注冊(cè)表需要重啟機(jī)器才能生效。組件多進(jìn)程池配置(ForWin2003) 方法:選擇“管理工具-組件服務(wù)-計(jì)算機(jī)-我的電腦-COM+應(yīng)用程序”下某個(gè)應(yīng)用程序包,單擊右鍵,選“屬性”菜單,進(jìn)入界面后選“共用與回收”標(biāo)簽頁(yè),更改“池大小”。根據(jù)目前中間層服務(wù)器的配置情況和軟件的實(shí)際情況,對(duì)于大多數(shù)組件建議設(shè)置為1,如果出現(xiàn)中間層組件堵塞同時(shí)服務(wù)器內(nèi)存充裕的情況下,對(duì)于EBOK3等應(yīng)用并發(fā)調(diào)用極其頻繁的組件可根據(jù)其線程數(shù)增大進(jìn)程池?cái)?shù)目。例如對(duì)于像EBOSYSTEM、EBOPUBLIC這樣應(yīng)用比較頻繁的組件設(shè)置為2,對(duì)于EBOK/3應(yīng)用極其頻繁的組件設(shè)置為2-3。EMBEDPBrush說明:WINDOWS允許為每個(gè)COM+包的組件開辟多個(gè)進(jìn)程池,這樣就可以將該組件的線程分散到不同的進(jìn)程池中,有利于系統(tǒng)調(diào)度,減少進(jìn)程的阻塞,提高系統(tǒng)服務(wù)性能。注意:在資源——CPU、內(nèi)存許可的情況下,理論上進(jìn)程池?cái)?shù)量越大越好,但其受系統(tǒng)核心的desktopheap的限制,進(jìn)程數(shù)不能無限加大,如果過大,可能導(dǎo)致desktopheap不足,引發(fā)組件創(chuàng)建失敗錯(cuò)誤。為了發(fā)揮最佳性能,必須根據(jù)COM+組件應(yīng)用的情況,合理設(shè)置每個(gè)com+包的進(jìn)程數(shù)。金蝶K3中間層組件包EBO*,目前已經(jīng)達(dá)到40多個(gè),一般情形下,不要隨意更改該組件包得其他屬性,除非本文檔中有介紹可以使用以外,否則,可能產(chǎn)生負(fù)面影響。一般如果操作系統(tǒng)剩余內(nèi)存比較充足,建議對(duì)應(yīng)用較多的中間層組件包EBO*進(jìn)程池?cái)?shù)量為2個(gè),特別充裕時(shí)可以設(shè)置為3個(gè)。Desktopheap設(shè)置 方法:擴(kuò)大DesktopHeap以增加創(chuàng)建Apartment的個(gè)數(shù)。a)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\SessionViewSize缺省是48M,是系統(tǒng)范圍的desktopheap的大小,將SessionViewSize改成96M來增加整個(gè)系統(tǒng)范圍內(nèi)的desktopheap的大小。b)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems\Window的值:ObjectDirectory=\WindowsSharedSection=1024,3072,512......1024,3072,512是defaultsetting,將512改成4096,以增加可創(chuàng)建窗口的數(shù)量。說明:每個(gè)系統(tǒng)Desktop對(duì)象都有heap與之對(duì)應(yīng),Desktop對(duì)象使用heap(堆)存儲(chǔ)菜單、字符串和窗體等。系統(tǒng)從核心緩存(48M)中分配desktopheap。一個(gè)WINDOWS操作系統(tǒng)可以有多個(gè)desktopheap。其分配可以通過注冊(cè)表進(jìn)行控制,上面b)的SharedSection=1024,3072,512的三個(gè)數(shù)字控制heap的分配第一個(gè)鍵值是Desktop所有對(duì)象共享的heap大小。包括全局句柄表(窗體、菜單、圖標(biāo)等的句柄)第二個(gè)鍵值對(duì)應(yīng)交互式windowstationWinsta0的desktopheap的大小。用戶對(duì)象如鉤子、菜單、字符串、窗體等消耗desktopheap的內(nèi)存。此值不必修改。第三個(gè)鍵值對(duì)應(yīng)非交互式windowstation的desktopheap的大小。如果沒有這個(gè)鍵值,那么其大小和第二個(gè)鍵值一樣。在非交互式工作站下,SCM(服務(wù)控制管理臺(tái))為一個(gè)用戶賬號(hào)的每一個(gè)服務(wù)進(jìn)程創(chuàng)建一個(gè)新的desktop,因此,一個(gè)用戶賬號(hào)的每一個(gè)服務(wù)將消耗desktopheap的數(shù)千字節(jié)。減少第二個(gè)或第三個(gè)鍵值的大小會(huì)增加相應(yīng)工作站desktop的可創(chuàng)建數(shù)量。但較小的鍵值會(huì)限制每個(gè)desktop內(nèi)鉤子、菜單、字符串和窗體的數(shù)量,即限制此進(jìn)程內(nèi)組件的創(chuàng)建。另一方面,增加第二個(gè)或第三個(gè)鍵值的大小會(huì)減少desktop的可創(chuàng)建數(shù)量,但每個(gè)desktop內(nèi)鉤子、菜單、字符串和窗體的數(shù)量會(huì)增加。因?yàn)樵诜墙换ナ焦ぷ髡鞠拢琒CM為一個(gè)用戶賬號(hào)的每一個(gè)服務(wù)進(jìn)程創(chuàng)建一個(gè)新的desktop,較大的desktopheap值將減少此系統(tǒng)可以服務(wù)的用戶賬號(hào)數(shù)量。全部的desktopheap必須適應(yīng)于48M系統(tǒng)范圍的緩存。當(dāng)發(fā)生組件創(chuàng)建失敗/超出內(nèi)存的錯(cuò)誤時(shí),可以適當(dāng)加大這些鍵值,如將SharedSection=1024,3072,512的三個(gè)數(shù)字改為2048,3072,2048。參見應(yīng)用程序回收時(shí)間限制 方法:選擇“管理工具-組件服務(wù)-計(jì)算機(jī)-我的電腦-COM+應(yīng)用程序”下某個(gè)應(yīng)用程序包,單擊右鍵,選“屬性”菜單,進(jìn)入界面后選“共用與回收”標(biāo)簽頁(yè),設(shè)置[應(yīng)用程序回收],使用默認(rèn)值。LifetimeLimit:0MemoryLimit:0ExpirationTimeout:15CallLimit:0ActivationLimit:0說明:應(yīng)用程序回收中的參數(shù)意義:生存時(shí)間限制——表示組件從創(chuàng)建到銷毀的時(shí)間,默認(rèn)為0,即按照組件自身的生命周期存活;內(nèi)存限制——表示COM+占用的最大內(nèi)存數(shù),一旦實(shí)際占用達(dá)到此限制,系統(tǒng)會(huì)自動(dòng)銷毀一些組件,在確認(rèn)使用情況的前提下,可以根據(jù)機(jī)器配置設(shè)置此值;過期超時(shí)——表示在組件銷毀時(shí)因?yàn)樯性诩せ顮顟B(tài)或其他原因,不能立即銷毀情況下等待的最大時(shí)間,默認(rèn)為15分鐘;調(diào)用限制/激活限制——表示允許的最大調(diào)用/激活進(jìn)程數(shù),建議使用默認(rèn)值0。系統(tǒng)默認(rèn)不限制,金蝶K3軟件在Windows2000系統(tǒng)最大的性能問題,組件進(jìn)程出現(xiàn)“死鎖”現(xiàn)象,隨著用戶數(shù)量遞增,出現(xiàn)的頻率也越高,至今仍然沒有一個(gè)較好得解決辦法。在Windows2003操作系統(tǒng)下,略做組件服務(wù)設(shè)置,那么可以基本上解決上述“死鎖”現(xiàn)象。一般來說,該“死鎖”問題解決,那么數(shù)據(jù)庫(kù)中的記錄“死鎖”,相應(yīng)也大大緩解。可以這樣理解,同樣硬件條件下服務(wù)器,在Windows2003做上述進(jìn)程池設(shè)置和應(yīng)用程序回收時(shí)間限制,其綜合性能指標(biāo)比Windows2000要優(yōu)越很多。也許有人會(huì)問,如果某單一業(yè)務(wù)處理時(shí)間(例如40分鐘)大大操作回收時(shí)間限制?其實(shí)該系統(tǒng)它不會(huì)強(qiáng)制關(guān)閉您業(yè)務(wù)正在處理得請(qǐng)求,直到完成后該進(jìn)程將自動(dòng)關(guān)閉。簡(jiǎn)略設(shè)置如下圖所示注意:合理設(shè)置LifetimeLimit的值對(duì)解決數(shù)據(jù)庫(kù)的死鎖有一定幫助,但其值不要設(shè)置太短,否則會(huì)導(dǎo)致COM+Runtime頻繁關(guān)閉和啟動(dòng)DLLHOST進(jìn)程,增加系統(tǒng)的資源壓力。MSDTC超時(shí)設(shè)置 方法:選擇“管理工具-組件服務(wù)-計(jì)算機(jī)-我的電腦”,單擊右鍵,選“屬性”菜單,進(jìn)入界面后選“選項(xiàng)”標(biāo)簽頁(yè),設(shè)置[事務(wù)超時(shí)]。 設(shè)置時(shí)可以根據(jù)目前的事務(wù)性能日志——例如在118S左右,因此可以設(shè)置為120S。 說明:MSDTC超時(shí)時(shí)間表示分布式事務(wù)的提交時(shí)間,與數(shù)據(jù)庫(kù)訪問事務(wù)有密切關(guān)系,優(yōu)先級(jí)低于數(shù)據(jù)庫(kù)的超時(shí)設(shè)置,分布式事務(wù)如超過此時(shí)間將中止。此時(shí)間需要根據(jù)事務(wù)的平均耗時(shí)來設(shè)置,設(shè)置過大容易導(dǎo)致數(shù)據(jù)庫(kù)產(chǎn)生死鎖,過小會(huì)使一些耗時(shí)較長(zhǎng)的事務(wù)不能提交,使一些長(zhǎng)事務(wù)被頻繁的KILL,導(dǎo)致客戶端業(yè)務(wù)不能正常完成。增大TransactionTimeout值可以減少保存數(shù)據(jù)引起過多的失敗操作。空閑等待時(shí)間設(shè)置 方法:選擇“管理工具-組件服務(wù)-計(jì)算機(jī)-我的電腦-COM+應(yīng)用程序”下某個(gè)應(yīng)用程序包,單擊右鍵,選“屬性”菜單,進(jìn)入界面后選“高級(jí)”標(biāo)簽頁(yè),設(shè)置[空閑等待時(shí)間]。此參數(shù)與上述回收參數(shù)設(shè)置的生存時(shí)間限制參數(shù)綜合作用,協(xié)調(diào)處理組件的銷毀工作;需要根據(jù)客戶用戶數(shù)量與頻繁調(diào)用狀況來決定。 說明:空閑等待時(shí)間表示一個(gè)進(jìn)程在空閑狀態(tài)時(shí)的等待時(shí)間,超過此時(shí)間則會(huì)進(jìn)行銷毀,此時(shí)間需根據(jù)組件調(diào)用情況合理設(shè)置,設(shè)置過長(zhǎng)將導(dǎo)致組件進(jìn)程不能及時(shí)釋放,設(shè)置過短將導(dǎo)致組件頻繁銷毀創(chuàng)建。 注意:該參數(shù)不能設(shè)置太大,以盡量減少空閑進(jìn)程對(duì)系統(tǒng)資源的占有。確保中間層組件編譯參數(shù)的正確 方法:使用工具VBCheckW2K進(jìn)行檢查,對(duì)沒有選中UnattendedExecution和RemainedInMemory選項(xiàng)進(jìn)行編譯的中間層組件重新編譯(主要指二次開發(fā)組件)。 說明:如果中間層沒有選中UnattendedExecution和RemainedInMemory選項(xiàng)進(jìn)行編譯,運(yùn)行COM+組件會(huì)導(dǎo)致COM+的不穩(wěn)定,甚至導(dǎo)致內(nèi)存泄露,因而對(duì)中間層組件要求編譯時(shí)參照下面要求進(jìn)行編譯:General頁(yè)面1.UnattendedExecution必選2.UpgradeActiveXControls必選3.RetainedInMemory必選4.ThreadingMode:選ApartmentThreaded0更新服務(wù)器環(huán)境方法:此部分主要是更新COM+應(yīng)用服務(wù)器的環(huán)境,保證服務(wù)器的穩(wěn)定,主要包括(1)服務(wù)器端使用最新的VB運(yùn)行時(shí)文件(2)升級(jí)操作系統(tǒng)到最新的ServicePack,WIN2000請(qǐng)打SP4,WIN2003請(qǐng)打SP1。(3)升級(jí)MDAC到最高版本。5.1.4Win2003下中間層EBO組件包安全設(shè)置 在Windows2003環(huán)境中安裝K/3中間層,特別是早期版本,要求對(duì)EBO包屬性中安全設(shè)置部分進(jìn)行修改,否則,當(dāng)客戶端數(shù)量超過一定數(shù)量時(shí),將不定時(shí)出現(xiàn)COM+服務(wù)錯(cuò)誤致使客戶端全部中斷。所以要求按照

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論