趙 佩,陶 鵬,王立斌,李 兵,李夢(mèng)宇,曹曉克
(1. 國(guó)網(wǎng)河北省電力公司電力科學(xué)研究院,石家莊 050021;2. 普華訊光(北京)科技有限公司,北京 100070)
MDS災(zāi)備系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器的分析與優(yōu)化
趙 佩1,陶 鵬1,王立斌1,李 兵1,李夢(mèng)宇1,曹曉克2
(1. 國(guó)網(wǎng)河北省電力公司電力科學(xué)研究院,石家莊 050021;2. 普華訊光(北京)科技有限公司,北京 100070)
針對(duì)MDS災(zāi)備系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行時(shí)間較長(zhǎng),性能無(wú)法支撐穩(wěn)定運(yùn)行的問(wèn)題,根據(jù)系統(tǒng)實(shí)際情況,從數(shù)據(jù)庫(kù)服務(wù)器軟硬件配置、參數(shù)信息和性能指標(biāo)等方面進(jìn)行分析,并提出相應(yīng)優(yōu)化方案。
MDS;災(zāi)備系統(tǒng);數(shù)據(jù)庫(kù)服務(wù)器;優(yōu)化
計(jì)量生產(chǎn)調(diào)度平臺(tái)(簡(jiǎn)稱“MDS系統(tǒng)”)圍繞計(jì)量設(shè)備生產(chǎn)過(guò)程監(jiān)控,實(shí)現(xiàn)生產(chǎn)運(yùn)行情況、計(jì)量體系支撐和生產(chǎn)質(zhì)量分析的綜合管理,構(gòu)建穩(wěn)定、高效的計(jì)量運(yùn)行體系,在有效提高檢定和配送工作質(zhì)量效率、提升計(jì)量管理水平、增強(qiáng)公司系統(tǒng)計(jì)量工作的管控力和影響力等方面起到關(guān)鍵性作用,是對(duì)現(xiàn)有營(yíng)銷業(yè)務(wù)系統(tǒng)中計(jì)量業(yè)務(wù)的有益補(bǔ)充,是公司深化“集團(tuán)化運(yùn)作、集約化發(fā)展”的必然要求。災(zāi)備系統(tǒng)作為正式系統(tǒng)的備用應(yīng)急支撐,數(shù)據(jù)庫(kù)服務(wù)器是其核心組成部分。由于MDS災(zāi)備系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行時(shí)間較長(zhǎng)、配置老舊,當(dāng)數(shù)據(jù)同步進(jìn)程全部進(jìn)程開(kāi)啟時(shí),出現(xiàn)程序運(yùn)行緩慢、主機(jī)無(wú)響應(yīng)、OGG嚴(yán)重延遲和換頁(yè)頻繁導(dǎo)致宕機(jī)等現(xiàn)象。針對(duì)以上情況,根據(jù)災(zāi)備庫(kù)的實(shí)際情況,從服務(wù)器軟硬件配置、數(shù)據(jù)庫(kù)及服務(wù)器參數(shù)信息和性能指標(biāo)分析等方面進(jìn)行了詳細(xì)分析,找到系統(tǒng)性能瓶頸,總結(jié)并提出相應(yīng)的解決方案。
MDS災(zāi)備系統(tǒng)數(shù)據(jù)服務(wù)器為一臺(tái)IBM Power P720小型機(jī),配置4顆3.0 GHz四核處理器,32GB物理內(nèi)存,2×300 GB硬盤(pán)。服務(wù)器操作系統(tǒng)版本為IBM AIX6.1,安裝數(shù)據(jù)庫(kù)及同步軟件版本分別為Oracle Database Enterprise 10.2.0.5.0和Oracle GoldenGate 11.2.1.0.1。
基于Unix操作系統(tǒng)的AIX作為IBM公司Power系列小型機(jī)的操作系統(tǒng),具有較強(qiáng)的穩(wěn)定性;Oracle 10G版本中的10.2.0.5.0版本穩(wěn)定性高,使用范圍廣;Oracle GoldenGate作為數(shù)據(jù)同步軟件,提供延遲亞秒級(jí)的數(shù)據(jù)同步功能,11.2.1.0.1版本應(yīng)用也較為成熟,而且從各個(gè)現(xiàn)場(chǎng)經(jīng)驗(yàn)和普遍反饋來(lái)看,此組合較為穩(wěn)定,是前些年小型機(jī)服務(wù)器配置的首選。
a. 使用vmo -a|grep maxperm%和vmo -a|grep maxclient%查詢服務(wù)器maxperm%和maxclient%兩項(xiàng)參數(shù),均設(shè)置為20%;
b. 使用show parameter命令,查看SGA和PGA的容量,分別為12 GB和2 GB;
c. 查看job_queue_processes和session_cached_cursors參數(shù)(代表同時(shí)數(shù)據(jù)庫(kù)可運(yùn)行的job和session數(shù)量上限),分別為50和20。
a. 使用topas命令查看服務(wù)器實(shí)時(shí)性能,發(fā)現(xiàn)CPU負(fù)荷很低,保持在5%以下;內(nèi)存容量30 GB中計(jì)算內(nèi)存占比70%,且虛擬內(nèi)存使用9%,出現(xiàn)較多的pagein和pageout;
b. 觀察alert日志,無(wú)異常和告警記錄;
c. 通過(guò)部署NMON工具,導(dǎo)出系統(tǒng)日志文件,生成并查看一天24 h的CPU負(fù)荷曲線,發(fā)現(xiàn)負(fù)荷分布嚴(yán)重不均,如圖1所示;
圖1 災(zāi)備數(shù)據(jù)庫(kù)服務(wù)器一天中CPU負(fù)荷情況
d. 查看換頁(yè)情況,發(fā)現(xiàn)文件系統(tǒng)換頁(yè)頻繁發(fā)生,說(shuō)明內(nèi)存資源嚴(yán)重不足,如圖2所示。
圖2 災(zāi)備數(shù)據(jù)庫(kù)服務(wù)器一天中換頁(yè)情況
a. 進(jìn)入ggsci使用info all命令觀察OGG各進(jìn)程情況,發(fā)現(xiàn)各運(yùn)行狀態(tài)的進(jìn)程表現(xiàn)平穩(wěn),延遲均為秒級(jí);另外存在一些暫停的OGG抽取進(jìn)程,如果將此類進(jìn)程全部開(kāi)啟,服務(wù)器虛擬內(nèi)存將會(huì)猛增至100%,系統(tǒng)無(wú)響應(yīng)甚至宕機(jī);
b. 查詢數(shù)據(jù)庫(kù)連接數(shù),無(wú)異常;
c. 使用SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)死鎖情況,發(fā)現(xiàn)行鎖大量存在,并在幾秒內(nèi)大量減少,說(shuō)明數(shù)據(jù)庫(kù)性能有部分異常,經(jīng)分析是OGG的投遞進(jìn)程導(dǎo)致的行鎖,在解除征用后消失;
d. 統(tǒng)計(jì)一周的數(shù)據(jù)庫(kù)AWR報(bào)告,各項(xiàng)數(shù)據(jù)庫(kù)指標(biāo)正常,AAS值位于1.04~2.81之間,硬解析0.04~0.19次/s,數(shù)據(jù)庫(kù)負(fù)載正常,且程序變量綁定良好,系統(tǒng)程序中不存在嚴(yán)重消耗資源的未優(yōu)化SQL語(yǔ)句。
從服務(wù)器和數(shù)據(jù)庫(kù)的參數(shù)配置及表現(xiàn)情況來(lái)看,多數(shù)參數(shù)配置較為合理,計(jì)算資源充足,但內(nèi)存資源不足,使得OGG的抽取和投遞進(jìn)程消耗系統(tǒng)內(nèi)存資源導(dǎo)致整體性能下降,主要從以下幾個(gè)方面提出優(yōu)化建議。
5.1 優(yōu)化運(yùn)維方法
新增運(yùn)維服務(wù)器指標(biāo)歷史監(jiān)測(cè)方法,通過(guò)系統(tǒng)配置每日實(shí)時(shí)生成NMON文件進(jìn)行7×24 h監(jiān)控,使用分析工具對(duì)每日CPU負(fù)荷指標(biāo)(和曲線)、內(nèi)存指標(biāo)值(和曲線)、網(wǎng)絡(luò)和存儲(chǔ)等一系列服務(wù)器運(yùn)行的性能指標(biāo)狀況進(jìn)行直觀監(jiān)測(cè),將來(lái)可根據(jù)運(yùn)維需要隨時(shí)調(diào)取生成。
5.2 調(diào)整內(nèi)存容量和參數(shù)
a. 根據(jù)以上分析,出現(xiàn)故障現(xiàn)象的根本原因是內(nèi)存資源不足,所以提高小型機(jī)的內(nèi)存配置是能夠解決問(wèn)題的關(guān)鍵??紤]到AIX的內(nèi)存管理機(jī)制(進(jìn)程結(jié)束不釋放),建議考慮資金狀況、現(xiàn)場(chǎng)條件和可持續(xù)性等情況,提升內(nèi)存容量,按照OGG進(jìn)程全開(kāi)啟后系統(tǒng)的表現(xiàn),建議至少提升2倍物理內(nèi)存容量;
b. 建議將SGA和PGA的合計(jì)容量設(shè)置按照物理內(nèi)存的60%~70%進(jìn)行配置,PGA按照物理內(nèi)存的6%配置,當(dāng)前系統(tǒng)PGA配置較為合理,但SGA配置比例較低,所以應(yīng)根據(jù)系統(tǒng)內(nèi)存配置情況,適當(dāng)提升災(zāi)備系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器SGA的配置和比例;
c. 梳理數(shù)據(jù)庫(kù)后臺(tái)定時(shí)任務(wù),考慮系統(tǒng)目前可承受的并行job數(shù)量,逐步調(diào)整job_queue_processes,當(dāng)前系統(tǒng)該參數(shù)可由50降低至10~30,觀察系統(tǒng)內(nèi)存緩解表現(xiàn)再進(jìn)行調(diào)整;
d. 關(guān)于session_cached_cursors參數(shù),多數(shù)現(xiàn)場(chǎng)業(yè)務(wù)量較大,將此參數(shù)調(diào)整至200甚至更高,因此可觀察session利用率,對(duì)當(dāng)前的參數(shù)進(jìn)行適當(dāng)提升調(diào)整。
5.3 提升災(zāi)備庫(kù)高效性和穩(wěn)定性
系統(tǒng)災(zāi)備庫(kù)作為正式系統(tǒng)的備用應(yīng)急支撐,其配置應(yīng)隨著正式系統(tǒng)功能模塊的增加和應(yīng)用的不斷深化而做相應(yīng)的提升或調(diào)整,以保證災(zāi)備系統(tǒng)投入運(yùn)行時(shí)高效可用。而近期災(zāi)備庫(kù)的配置沒(méi)有做出提升,一旦切換投入使用,不能承擔(dān)正式系統(tǒng)的角色正常運(yùn)行。所以,從提升系統(tǒng)可用性、高效性和穩(wěn)定性的角度考慮,宜在提升服務(wù)器內(nèi)存的同時(shí),采購(gòu)型號(hào)配置相同的服務(wù)器與當(dāng)前服務(wù)器形成RAC雙節(jié)點(diǎn),保證系統(tǒng)高效、穩(wěn)定運(yùn)行。
5.4 優(yōu)化調(diào)整OGG
根據(jù)現(xiàn)場(chǎng)日常運(yùn)維的實(shí)際情況,投遞進(jìn)程的效率要遠(yuǎn)低于抽取進(jìn)程,因?yàn)橥哆f進(jìn)程需要寫(xiě)數(shù)據(jù)庫(kù),消耗部分I/O資源。按照Oracle官方文檔,對(duì)于OGG進(jìn)程本身,抽取和投遞所占資源相同,每個(gè)進(jìn)程消耗30 MB內(nèi)存容量,但實(shí)際上進(jìn)程的消耗與OGG配置、表數(shù)量和數(shù)據(jù)庫(kù)操作頻繁度等情況有關(guān)。所以根據(jù)實(shí)際,合理設(shè)置OGG各項(xiàng)配置參數(shù)、調(diào)整進(jìn)程數(shù)量,是緩解內(nèi)存資源不足的可選措施。調(diào)整方案如下:
a. 將更新量少和更新頻繁的數(shù)據(jù)表分別歸類,分別單獨(dú)構(gòu)建OGG進(jìn)程,合理分配、方便管理;
b. 嚴(yán)格把控OGG進(jìn)程中表的數(shù)量,剔除進(jìn)程中無(wú)必要的數(shù)據(jù)表,避免如TABLE SCHEMA.*模式下所有數(shù)據(jù)表的寫(xiě)法;
c. 實(shí)際OGG進(jìn)程不傳輸truncate操作,去掉GETTRUNCATES參數(shù),提高進(jìn)程傳輸性能;
d. 由于數(shù)據(jù)更新量越大,對(duì)聯(lián)機(jī)日志的磁盤(pán)IO的要求越高,所以應(yīng)保證redo log文件所在磁盤(pán)有較高的IO性能;
e. 根據(jù)數(shù)據(jù)生命周期規(guī)定,刪除歷史數(shù)據(jù),壓縮表空間,合理設(shè)置主鍵、重建索引,提升數(shù)據(jù)表讀取效率。
5.5 合理調(diào)整定時(shí)任務(wù)時(shí)間
通過(guò)查看NMON負(fù)荷曲線,可知一天中只有上午0時(shí)至12時(shí)的CPU負(fù)荷曲線較高,其他時(shí)間CPU平均負(fù)荷小于5%。所以,梳理系統(tǒng)進(jìn)程和定時(shí)任務(wù)分布情況,將負(fù)荷高峰期的部分可調(diào)定時(shí)任務(wù)移至負(fù)荷低谷段,此舉不僅有利于系統(tǒng)程序的穩(wěn)定運(yùn)行,對(duì)系統(tǒng)資源的緩解也起到一定的促進(jìn)作用。
針對(duì)MDS災(zāi)備數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)的問(wèn)題,本文從服務(wù)器軟硬件配置、服務(wù)器及數(shù)據(jù)庫(kù)參數(shù)信息和服務(wù)器及數(shù)據(jù)庫(kù)性能指標(biāo)分析等方面進(jìn)行了詳細(xì)分析,從各方面找到系統(tǒng)性能瓶頸,提出了相應(yīng)的解決方案,以期在降低系統(tǒng)負(fù)荷方面起到積極作用,為提升計(jì)量資產(chǎn)管理效率、保障系統(tǒng)安全穩(wěn)定運(yùn)行等方面奠定堅(jiān)實(shí)的基礎(chǔ)。
[1] 趙 佩,李 翀,王立斌,等. 基于ORACLE數(shù)據(jù)庫(kù)的用戶用電信息采集系統(tǒng)性能優(yōu)化[J].河北電力技術(shù),2016,35(3): 14-16.
[2] 秦 靖,劉存勇. Oracle從入門(mén)到精通[M].北京:機(jī)械工業(yè)出版社,2015.
[3] 崔 華. 基于Oracle的SQL優(yōu)化[M]. 北京:電子工業(yè)出版社,2014.
[4] 趙 佩,王立斌,李 翀,等. 用電信息采集系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行指標(biāo)監(jiān)測(cè)與性能分析[J].河北電力技術(shù),2016(5): 25-28.
本文責(zé)任編輯:靳書(shū)海
下期要目
氨化度監(jiān)控法在鍋爐清洗液調(diào)配中的應(yīng)用 110 kV GIS避雷器氣室SF6氣體泄漏問(wèn)題分析 燃煤機(jī)組煙氣脫硝系統(tǒng)NOx自動(dòng)調(diào)節(jié)控制分析 12 kV用戶分界開(kāi)關(guān)在河北省南部電網(wǎng)的應(yīng)用及問(wèn)題分析
Database Server Analysis and Optimization of MDS Failover System
Zhao Pei1,Tao Peng1,Wang Libin1,Li Bing1,Li Mengyu1,Cao Xiaoke2
(1.State Grid Hebei Electric Power Research Institute, Shijiazhuang 050021, China;2.Powersmart (Beijing) Science and Technology Co.Ltd, Beijing 100070, China)
For a long period when the database server of failover system put into operation,its performance makes it difficult to support the stable operation, and according to the actual situations of the system, this paper analyses the configuration,parameters and indicators of database server, and provides corresponding optimization scheme.
MDS;failover system;database server;optimization
TP309.3
:B
:1001-9898(2017)04-0050-03
2016-09-08
趙 佩(1990-),男,工程師,主要從事信息系統(tǒng)建設(shè)運(yùn)維和數(shù)據(jù)庫(kù)服務(wù)器優(yōu)化研究工作。