今天一定要給大家分享一下用友U8erp軟件運(yùn)行的性能優(yōu)化方案圖文教程,以下方案來自用友軟件官方維護(hù)工程師反饋在在處理客戶問題的時(shí)候,有一類問題較為撓頭,就是諸如用友U8服務(wù)器效率低下的問題。比如用友U8運(yùn)行慢,卡住等,我們暫先不提用友U8軟件代碼、腳本層面本身的性能提升問題,我們只是基于現(xiàn)有用友U8軟件版本,在客戶現(xiàn)有環(huán)境下排查用友U8軟件運(yùn)行的性能瓶頸,并采取一定的技術(shù)手段進(jìn)行性能調(diào)校。

本文將推薦一種利用Windows 性能監(jiān)視器結(jié)合SQL Server Profiler(事件探查器)監(jiān)控數(shù)據(jù)庫性能,以及利用Windows 性能監(jiān)視器監(jiān)測系統(tǒng)各項(xiàng)資源。

ps:感謝用友軟件官網(wǎng)工程師的無私奉獻(xiàn)!接下來請大家認(rèn)真欣賞和參考:用友U8erp軟件運(yùn)行的性能優(yōu)化方案圖文教程!

一、Windows 性能監(jiān)視器

Windows 性能監(jiān)視器是一個(gè)用于分析系統(tǒng)性能的工具。僅從一個(gè)單獨(dú)的控制臺,即可實(shí)時(shí)監(jiān)視應(yīng)用程序和硬件性能,自定義要在日志中收集的數(shù)據(jù),定義警報(bào)和自動(dòng)操作的閾值,生成報(bào)告以及以各種方式查看過去的性能數(shù)據(jù)。

啟動(dòng)性能監(jiān)視器的步驟

①單擊“開始”,在“開始搜索”框中單擊,鍵入 perfmon,然后按 Enter。

②在導(dǎo)航樹中,打開“管理工具”,然后單擊“性能監(jiān)視器”。

系統(tǒng)預(yù)制了系統(tǒng)性能收集器,性能計(jì)數(shù)器也是預(yù)制好的,我們在系統(tǒng)菜單下可以找到該收集器,見下圖。

收集器會生成一個(gè)報(bào)告,其中詳細(xì)記錄本地硬件資源的狀態(tài)、系統(tǒng)響應(yīng)時(shí)間和本地計(jì)算機(jī)上的進(jìn)程。使用此信息可以識別性能問題的可能原因。本地 Administrators 組的成員身份(或同等身份)是運(yùn)行此數(shù)據(jù)收集器集的最低要求。

當(dāng)客戶服務(wù)器性能存在瓶頸,但是又無法判斷時(shí),我們可以利用此收集器做一個(gè)系統(tǒng)性能的初步檢測。接下來,我們開啟此收集器。開啟方法:選中此性能收集器,點(diǎn)擊開啟。系統(tǒng)默認(rèn)收集一分鐘的系統(tǒng)性能,收集完成后我們可以查看系統(tǒng)性能報(bào)告,其中詳細(xì)記錄本地硬件資源的狀態(tài)。

二、創(chuàng)建跟蹤SQL事件的數(shù)據(jù)收集器

①打開性能監(jiān)視器,展開“數(shù)據(jù)收集器集”,右鍵單擊“用戶定義”,再單擊“新建”、“數(shù)據(jù)收集器集”

鍵入數(shù)據(jù)收集器集的名稱,選擇“手動(dòng)創(chuàng)建”,然后單擊“下一步”。

②選擇“性能計(jì)數(shù)器”,然后單擊“下一步”。

③單擊“添加”以添加計(jì)數(shù)器。在“可用計(jì)數(shù)器”列表中,選擇要監(jiān)視的性能對象。 SQL Server 默認(rèn)實(shí)例的 SQL Server 性能對象名稱以 SQL Server 開頭,命名實(shí)例以 MSSQL$instanceName 開頭。

④通常我們可以關(guān)注SQLSERVER實(shí)例本身的計(jì)數(shù)器,我選取了幾項(xiàng),含義如下:

1.)SQLServer: Buffer Manager: Buffer cache hit ratio (SqlServer緩沖管理器:緩沖區(qū)高速緩存命中率 )高速緩存命中率計(jì)數(shù)器,表示SQL Server接受命令查詢所需的數(shù)據(jù)頁恰好在高速緩存中的概率,如果在高速緩存中查找不到,則數(shù)據(jù)頁要重新到磁盤或者其它地方獲取。這個(gè)數(shù)值越高,表示SQL Server能夠從緩存中獲得的數(shù)據(jù)概率越高,而不是再從磁盤讀取。這個(gè)數(shù)值理論上是越高越好,接近到100.有了這100,100%的時(shí)間在SQL Server的內(nèi)存中找到了需要的數(shù)據(jù)頁,那么性能一直很高。如是是一個(gè)很低的數(shù)值可能表明內(nèi)存方面有問題,最有可能是內(nèi)存不足。

2.)SQLServer: Buffer Manager: Page life expectancy (SqlServer緩沖管理器:頁壽命)頁壽命表示頁在緩存中存放的時(shí)間。頁面停留的時(shí)間越長在內(nèi)存中,那么下一次查詢時(shí),如果所需的頁面還在緩存中,SQL Server將不再需要從磁盤讀取。頁壽命根據(jù)不同的服務(wù)器的基值不同,和內(nèi)存大小有一定的關(guān)系,我們應(yīng)該觀察這個(gè)計(jì)數(shù)器,以確定數(shù)據(jù)庫環(huán)境中正?;€是什么。有人統(tǒng)計(jì)了一下,低于300(或5分鐘),說明我們的服務(wù)器內(nèi)存不足。

3)SQLServer: SQL Statistics: SQL Re-Compilations/Sec(SqlServer的:SQL統(tǒng)計(jì):重編譯/秒 )有時(shí)因?yàn)橐恍┲匾氖录l(fā)生時(shí),導(dǎo)致執(zhí)行計(jì)劃失效,SQL Server將重新編譯它。該重編譯/秒表示每秒鐘重新編譯執(zhí)行計(jì)劃的次數(shù),和編譯一樣,都是代價(jià)高昂的操作,所以應(yīng)盡量減少重新編譯次數(shù)。理想情況下我們要保留這個(gè)計(jì)數(shù)器小于編譯/秒(上面第4項(xiàng))的10% .

⑤添加其他重要計(jì)數(shù)器。添加SQLServer實(shí)例所需的所有計(jì)數(shù)器和其他重要值(例如處理器時(shí)間和磁盤時(shí)間),選擇完成點(diǎn)擊下一步,點(diǎn)擊保存并關(guān)閉。

其中,設(shè)置“示例間隔”的值。 開始時(shí)使用適中的抽樣間隔值(例如 5 分鐘),然后在必要時(shí)調(diào)整間隔值。

三、將跟蹤與Windows性能日志數(shù)據(jù)關(guān)聯(lián)

SQL Server Profiler 可以將 Microsoft Windows 系統(tǒng)監(jiān)視器計(jì)數(shù)器與 SQL Server 或 SSAS事件關(guān)聯(lián)。 Windows 系統(tǒng)監(jiān)視器將指定計(jì)數(shù)器的系統(tǒng)活動(dòng)記錄在性能日志中。

①在 SQL Server Profiler中,打開保存的跟蹤文件或跟蹤表。 不能關(guān)聯(lián)仍在收集事件數(shù)據(jù)的運(yùn)行中的跟蹤。 為實(shí)現(xiàn)與系統(tǒng)監(jiān)視器數(shù)據(jù)的準(zhǔn)確關(guān)聯(lián),跟蹤必須同時(shí)包含 StartTime 和 EndTime 數(shù)據(jù)列。我們開啟SQL Server Profiler跟蹤一段時(shí)間內(nèi)的運(yùn)行腳本,使用默認(rèn)模板,點(diǎn)擊運(yùn)行。

我們打開U8界面,對采購模塊進(jìn)行月結(jié),注意,此時(shí)跟蹤要開啟,自定義的數(shù)據(jù)收集器要啟動(dòng)。當(dāng)然,我們可以做更多復(fù)雜的操作,來收集更為詳盡的信息。

收集大概五分鐘左右的數(shù)據(jù),我們將數(shù)據(jù)收集器停止,如下圖

同時(shí),我們將SQL Server Profiler跟蹤停止,并將跟蹤另存為跟蹤文件。

此時(shí),我們關(guān)閉SQL Server Profiler跟蹤,再次啟動(dòng)SQL Server Profiler,并選擇文件-打開,選擇剛剛保存的跟蹤文件。然后我們再點(diǎn)擊文件-導(dǎo)入性能數(shù)據(jù)。導(dǎo)入的文件在哪里呢,是在我們剛剛設(shè)置的數(shù)據(jù)收集器的屬性里,如圖

選擇導(dǎo)入后,我們會得到如下的界面,我們可以在這個(gè)界面再次選擇我們需要的計(jì)數(shù)器。

我們在剛才做的采購月結(jié)過程中,通過對比同一時(shí)間段的獲取結(jié)果,在性能監(jiān)視器圖形中單擊一個(gè)相關(guān)點(diǎn)。 將選中時(shí)間最接近的相應(yīng)跟蹤行。 若要擴(kuò)大時(shí)間范圍,請?jiān)谛阅鼙O(jiān)視器圖形中按住并拖動(dòng)鼠標(biāo)指針。

比對發(fā)現(xiàn),在月結(jié)操作時(shí),主要是月結(jié)檢查部分,計(jì)數(shù)器數(shù)值達(dá)到一個(gè)小高峰。詳細(xì)的腳本分析就不在這里進(jìn)行展開分析。

四、結(jié)論

我們將SQL Server Profiler 可以將 Microsoft Windows 系統(tǒng)監(jiān)視器計(jì)數(shù)器與 SQL Server 事件關(guān)聯(lián),將sql腳本跟蹤的結(jié)果與系統(tǒng)資源計(jì)數(shù)器結(jié)合,分析造成當(dāng)前系統(tǒng)瓶頸的腳本和語句,一些問題是可以通過改善代碼質(zhì)量提高效率,一些問題則需要提高(或優(yōu)化)系統(tǒng)硬件配置來改善效率,本文只是提高一種分析效率的問題方法和思路,更多的手段和技巧需要在實(shí)踐中完善,希望此文對您有一定幫助。