趙 佩,李 翀,王立斌,郭一實,潘曉君
(1.國網河北省電力公司電力科學研究院,石家莊 050021;2.國電南瑞科技股份有限公司用電分公司,南京 210000)
?
基于ORACLE數據庫的用戶用電信息采集系統性能優化
趙佩1,李翀1,王立斌1,郭一實1,潘曉君2
(1.國網河北省電力公司電力科學研究院,石家莊050021;2.國電南瑞科技股份有限公司用電分公司,南京210000)
摘要:針對用戶用電信息采集系統主站承擔越來越大調試、接入和采集等方面的壓力,結合系統的運行監控情況,從系統硬件配置、后臺程序、數據表分析和運維人員語句編寫等四方面提出系統性能優化方案,說明優化方案的效果,并給出今后系統進一步優化的建議。
關鍵詞:智能電網;采集系統;數據庫;性能優化;程序優化
1概述
用戶用電信息采集系統(以下簡稱“采集系統”)以智能電表和通信網絡為基礎支撐[1],覆蓋購、供、售三側關口,對各項電氣量數據進行實時精確采集,為電網運營管理提供了準確海量的數據支撐,是智能電網的核心組成部分。
隨著智能電網的發展與推廣,在大量用戶接入的壓力下,采集系統生產數據庫負荷居高不下,甚至出現夯住現象,給公司正在逐步上升的用電采集業務應用及指標數據造成惡劣影響。因此,及時有效地解決采集系統瓶頸、優化采集系統性能成為保證電能準確采集、支撐調試接入應用的當務之急,而且隨著采集系統的不斷深化應用,數據的準確可靠與系統的安全穩定運行成為各部門管理者和應用者的共同期盼。[2]
因此,以下結合采集系統的運行監控情況,對系統日志與報告進行研究,從系統硬件配置調整、后臺程序優化、數據表分析優化、規范運維人員語句編寫等四方面進行分析,得出相應的系統性能優化方案。
2采集系統性能現狀分析
采集系統生產數據庫使用2臺IBM P570小型機,每臺16核處理器,內存96 GB,AIX操作系統,安裝Oracle 10g數據庫,雙節點運行。隨著智能電網的發展,近期河北省智能電能表快速接入,采集系統主站承擔了越來越大的調試、接入和采集等方面的壓力。以采集系統硬件配置擴容前生產庫1號節點系統為例(2號節點與1號節點類似,不做展示),根據服務器記錄的NMON文件,導出CPU占用情況,如圖1所示。

圖1 優化前生產庫1號節點CPU占用情況
由圖1可以看出,系統CPU占用率偶爾出現負荷突增至90%以上的情況,且當時內存使用率一直居高不下:物理內存(96 GB)持續僅剩余0.1 %,虛擬內存(38 GB)僅剩余30%~40%。物理內存緊張導致大量的虛擬內存SWAP交換,出現數據庫宕機夯住現象,同時出現CPU占用增高現象。
3系統性能優化措施
3.1調整系統硬件配置
經過分析,每天接入電能表數量可達數萬量級,抄表、計算數據量也隨之增加,排除網絡因素后可知,內存不足、參數配置低是導致性能下降的系統硬件原因,而CPU占用率高也與物理內存不足有關。故經過初步計算,提出進行系統硬件配置升級,將內存大小提升至128 GB,同時做好系統參數和內存分配的調整:系統參數maxclient調整為20%、maxperm調整為20%,session_cached_cursors調整至200;Oracle內存分配SGA從55 GB調整到70 GB。
3.2優化后臺程序
省市縣公司各級用戶在使用采集系統過程中,會通過web頁面與數據庫進行交互,在AWR報告的SQL Module體現為JDBC Thin Client。
從數據庫夯住前后導出的AWR報告中的SQL Statistics章節可以看出:有大量通過JDBC Thin Client連接數據庫的SQL語句占用了較長的運行時間和CPU時間。整體的性能影響還與執行次數(Executions)有關,通過web頁面連接數據庫往往執行頻率較高,而SQL語句執行的次數過多,累加起來對系統的影響同樣會很大。
故對于這部分語句在分析AWR報告時,需要關注SQL Statistics中的SQL ordered by Elapsed Time和SQL ordered by CPU Time等指標,從減少運行時間的角度考慮優化方案。
3.3優化數據表分析
為數據表創建索引不僅可以保證數據的唯一性,而且可以大大加快數據的檢索速度、分組和排序的時間,進而提高系統性能。[3]但是,索引創建不當也會產生不利影響,例如索引的創建和維護耗費時間和占用的空間隨著數據量的增加而增加,降低系統的維護速度和增大空間需求等。根據創建索引優缺點分析,應該在以下列上創建索引。
a. 在經常需要搜索的列上,可以加快搜索的速度;
b. 在作為主鍵的列上,強制該列的唯一性和組織表中數據的排列結構;
c. 在經常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;
d. 在經常需要根據范圍進行搜索的列上,因為索引已經排序,其指定的范圍是連續的;
e. 在經常需要分組和排序的列上,因為索引已經排序,這樣查詢可以利用索引的排序,加快排序查詢時間;
f. 在經常使用在WHERE子句中的列上,加快條件的判斷速度。
g. 在查詢中很少使用或者參考的列不應該創建索引,只有很少數據值,定義為text、image和bit數據類型的列不應該增加索引、當修改性能遠遠大于檢索性能時不應該創建索引。
3.4規范運維人員語句編寫
在日常運維人員使用的語句中,會大量出現一些臨時的SQL語句,使用常量在條件中進行限制,會出現硬解析的情況。對于這部分語句(SQL Module為PL/SQL Developer),在分析AWR報告時,需要關注SQL Statistics中的SQL ordered by Gets和SQL ordered by Reads 2個指標。大量的Gets(邏輯讀)會占用大量CPU時間,大量的Reads(物理讀)會引起大量的硬解析,占用大量的Latch,也會消耗大量的CPU時間,導致I/O的瓶頸出現。一般情況下,大量的 Gets會伴隨著大量的Reads出現。
根據日常案例分析,從數據庫夯住前后導出的AWR報告中可以看出,運維人員使用PL/SQL執行SQL語句,在AWR報告中,邏輯讀和物理讀多數占比排名較為靠前,使用這2個指標找到了最影響性能的SQL語句,可以通過規范/優化運維語句、增加/創建索引、調整數據表來提高SQL單獨執行時的性能,減少SQL執行時出現的高Gets/Reads。
另外,還可以通過增大SGA的方法減少Reads的量。利用相同的SQL語句解析,在第一次解析后,Oracle將SQL語句放在內存中。這塊位于系統全局區域SGA的共享池中的內存可以被所有的數據庫用戶共享。[4]當執行一個SQL語句時,如果它和之前執行過的語句完全相同,則可以大大提高SQL的執行性能,節省內存資源。數據庫DBA在init.ora中為這個區域設置合適的參數,當這個區域越大,被保留的SQL語句就越多,被共享的可能性也就越大。
4優化效果
開展系統硬件配置調整、后臺程序優化、數據表分析優化、規范運維人員語句編寫等優化工作后收效明顯,部分SQL語句執行效率提升90%以上,系統宕機和數據庫夯住情況不再頻繁出現,CPU負荷也有大幅降低,優化后1號節點CPU占用情況如圖2所示。

圖2 優化后生產庫1號節點CPU占用情況
5建議
5.1系統架構遷移調整
統籌規劃系統架構和生產庫遷移方案,利用現有服務器資源,對系統架構進行遷移調整,將生產庫遷移到高性能服務器,從而使系統能夠具備采集全省電力用戶接入的承載能力。同時,可以在生產庫遷移過程中做好數據庫版本升級工作。
5.2持續優化系統性能
為保證系統性能最優,運行狀況平穩,需要持續開展后臺程序優化工作。對執行次數多以及未綁定變量的SQL語句進行緩存和綁定變量;對不合理的部分進行總結歸納,并分類給出優化和修改方案;考慮將不同的數據文件、控制文件、日志文件放在不同的磁盤,表和索引放在不同的表空間;設置合適的page_size大小;設置異步I/O等。
5.3持續優化數據表分析
對系統中的全部數據表情況進行梳理,參考訪問數據表的頻率和AWR報告、ASH報告等數據庫運行情況,統籌分析和規劃參數調整和索引維護方案,并對遺留臨時表等垃圾數據表進行清理;對表空間大小進行實時監控和優化;梳理并設置合理的分區、壓縮,實時監控并設置合適的pctfree、initrans等參數,減少行連接和行遷移,控制表碎片等。
5.4規范運維人員操作
為防止人為因素導致異常問題的出現,需要廠商和運維人員開展日常運維工作中遵從優化方案,定期舉辦宣貫培訓工作,長期進行SQL語句規范。
5.5開展故障分析整理
做好歷次宕機故障分析,做好宕機期間資料的收集和歸納,結合AWR報告、alert日志、trc文件和nmon負荷曲線進行統籌分析,并給出相應處理方法和改造方案。找到系統瓶頸和癥結所在,并將系統運行日志、系統故障處理記錄等資料整理齊全,留檔備案,最終形成系統主站故障處理專家庫,以便在系統故障時查閱處理方法。同時,制定相關管理辦法和操作規范,在將來系統發生故障時啟動應急預案,及時發現并做好系統故障的全過程記錄,保證系統最快恢復穩定運行狀態。
6結束語
采集系統主站性能優化是一項需要長期開展的工作,涉及到數據庫、服務器、操作系統等方面的各項技術。采集系統優化工作將成為支撐智能電網建設、支撐電網運營管理、支撐各項電氣量數據實時精確采集,支撐海量數據挖掘與深化應用以及提升采集系統運行與管理效率等方面的堅實基礎。
參考文獻:
[1]劉征.電力用戶用電信息采集系統的研究與應用[J].大科技,2013(18):27-28.
[2]梁波,楊銘海. 用電信息采集系統架構及功能應用(一)[J]. 農村電工,2013(2):41-43.
[3]秦靖,劉存勇. Oracle從入門到精通)[M].北京:機械工業出版社,2015.
[4]崔華. 基于Oracle的SQL優化[M]. 北京:電子工業出版社,2014.
本文責任編輯:王洪娟
Performance Optimization of Power User Electric EnergyData Acquire System Based on ORACLE Database
Zhao Pei,Li Chong,Wang Libin,Guo Yishi,Pan Xiaojun
(1.State Grid Hebei Electric Power Research Institute,Shijiazhuang 050021,China;2.NARJ Technology Development Co.Ltd.,Electrical Branch,Nanjing 210000,China)
Abstract:For the increasing pressure of power user electric energy data acquire system master in debugging, access and acquisition,this paper provides system performance optimization methods in hardware configuration,background program, statistics analysis and programming of operation and maintenance staff,after analyzing multiple dimensions and combining operation monitoring,presents the effect of optimization,and gives system optimization suggestions in the future.
Key words:Smart Grid;acquire system;database;performance optimizations;program optimization
收稿日期:2016-01-20
作者簡介:趙佩(1990-),男,助理工程師,主要從事用電信息采集系統建設推進和優化研究工作。
中圖分類號:TM764
文獻標志碼:B
文章編號:1001-9898(2016)03-0014-03