oracle效能優化二——作業系統優化
在我的前一篇部落格《oracle效能優化一——簡介》對oracle優化進行了簡單介紹,那麼今天我就從作業系統方面來介紹如何優化oracle資料庫。
1.優化思路
在資料庫優化的時候,可以從5個方面調整,我們可以做為資料庫優化的思路
Ø 網路
Ø 硬體
ü I/O子系統
ü Cpu子系統
ü 儲存器
Ø 作業系統
ü UNIX系統
ü NT系統
ü VMS
Ø 資料庫
ü 儲存引數調整
ü 環境引數調整
Ø 應用程式
批處理和OLTP應用程式具有不同特點,批處理要考慮整體時間,而OLTP更注重單個sql的效能,在考慮單條sql是重點是:
ü 棘手sql調整
ü 索引調整
2.硬體優化
硬體的調整常在應用程式展開的初期見到,並且能解決很多效能問題,隨著應用程式的展開,資料庫規模的增長,後期主要的調整手段要放到資料庫和應用程式上去。它們往往是影響效能的主要因素,同時也比硬體調整要更加經濟。當然,如果客戶不計成本向裡扔錢,不反對硬體升級。
3. 作業系統的優化
對作業系統的優化要看具體的作業系統而言,下面有一些常用的經驗可供參考。
1. 對於unix作業系統,我們經常需要調整如下引數:
Ø 共享記憶體(SharedMemory)
Ø 訊號燈(Semaphores)
對於共享記憶體主要關注下面四個核心引數:SHMMAX(單個共享記憶體段最大值)、SHMSEG(能夠連到單個程式上共享記憶體段的最大值)、SHMALL(共享記憶體段總數目)。oracle建議將單個例項的SGA分配在一個共享記憶體段裡。所以SHMMAX一般為實體記憶體的一半。具體的調整請看oracle的安裝手冊。最後,可以使用一些系統級工具進行監測:ipcs –b 可以獲得當前共享記憶體段列表;tstshm 可以評估共享記憶體段設定。
對於訊號燈:主要關注SSEMMNI(系統裡訊號燈集合的最大數目)、SEMMSL(每個集合裡訊號燈的最大數目)、SEMMNS(系統範圍內可用的訊號燈的最大數目)。每個oracle程式使用一個訊號燈,訊號燈數要比process多,否則資料不能啟動,每個核心引數的最佳取值同上,在oracle的安裝文件裡有詳細說明,此不贅述。
最後還要注意,要給作業系統留下足夠的記憶體,不要因為SGA太大而造成過多的頁交換,太多的page fault會消耗系統資源。
可以利用作業系統的監視工具來分析系統的瓶頸,下面的示例都是本文例項使用sql*loader匯入資料檔案時的情況,這是系統資源使用的一個高峰。
使用iostat如圖1所示,bps表示每秒傳輸的kb數、tps表示每秒訪問磁碟驅動的次數。
圖1
可以看到硬碟平均每秒訪問磁碟100次左右,平均每秒傳輸5M左右資料,這樣每次訪問磁碟可以訪問到52K資料。
使用vmstat如圖1所示,大家要主要關心pagefault、page pin、page pout,這些資料表明了系統的頁交換情況,cpu id顯示了cpu資源利用率,procs 表明佇列的多少。
圖2
圖2表明:有大量的頁交換產生,空閒記憶體太少,存在著記憶體瓶頸。但是cpu有大量的空閒等待時間。這表明SGA太大,導致系統本身的快取太小。
通過這兩個工具的監測,就可以明白原來系統的瓶頸就在記憶體和硬碟io這兩個子系統上,更深層次的原因還有待對oracle的監測來發現。
對於WINDOWNT系列作業系統,可以使用如下手段優化作業系統:
Ø 使不必要的服務失效
Ø取消螢幕保護
Ø 只將機器用做資料庫伺服器
Ø 如果是WINDOWSNT系統
控制面扳中Networktool –Properties下面四個選項中選擇Maximize Throughput for Network Application
控制面扳中Systemtool—Performance中boost選擇None,減少檔案系統緩衝
Ø 利用效能監視器監視資料庫伺服器,分析效能瓶頸
Ø 利用微軟資源工具箱(resourcespake)中的工具(Process Viewer、Process Explode、Quick Slice、Process Stat)監視資料庫伺服器,決定作業系統是否優化
做優化,不單單要指導如何優化SQL,還有懂得作業系統的知識,從底層開始優化。
相關文章
- Oracle效能優化-SQL優化(案例二)Oracle優化SQL
- 【效能優化】秒殺系統效能優化初體驗優化
- Oracle效能優化視訊學習筆記-效能優化概念(二)Oracle優化筆記
- Oracle某行系統SQL優化案例(二)OracleSQL優化
- 效能優化(二) UI 繪製優化優化UI
- oracle 效能優化Oracle優化
- Oracle效能優化Oracle優化
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- Oracle效能優化-SQL優化(案例三)Oracle優化SQL
- Oracle效能優化-SQL優化(案例四)Oracle優化SQL
- 效能優化 - Oracle Tuning 總結 3 優化統計優化Oracle
- Android效能優化——圖片優化(二)Android優化
- 系統效能優化總結優化
- oracle效能優化(二)-調整查詢Oracle優化
- Oracle SQL效能優化OracleSQL優化
- oracle 效能優化(一)Oracle優化
- 系統架構效能優化思路架構優化
- (mysql優化-3) 系統優化MySql優化
- 【前端效能優化】vue效能優化前端優化Vue
- Oracle 效能優化-expdp備份速度優化02Oracle優化
- Oracle 效能優化-expdp備份速度優化03Oracle優化
- 八、Android效能優化之電量優化(二)Android優化
- 高併發&效能優化(二)------系統監控工具使用優化
- Oracle效能優化方法論的發展之二:基於OWI的效能優化方法論Oracle優化
- Oracle 效能優化小結Oracle優化
- oracle效能優化之--hintsOracle優化
- Oracle效能優化FAQ (zt)Oracle優化
- ORACLE效能優化筆記Oracle優化筆記
- 效能優化案例-SQL優化優化SQL
- 效能優化之關於畫素管道及優化(二)優化
- Android 效能優化(二)之佈局優化面面觀Android優化
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- 效能優化漫談之二優化
- 【效能優化】Oracle 效能優化:行比例偏差大 建立柱狀圖優化Oracle
- Oracle效能優化視訊學習筆記-效能優化概念(一)Oracle優化筆記
- iOS作業系統-- App啟動流程分析與優化iOS作業系統APP優化
- MySQL伺服器硬體和作業系統優化MySql伺服器作業系統優化