[轉]Linux服務器性能評估與優化(二)

 4.磁盤I/O性能評估 node

1)磁盤存儲基礎ios

l             熟悉RAID存儲方式,能夠根據應用的不一樣,選擇不一樣的RAID方式。web

l             儘量用內存的讀寫代替直接磁盤I/O,使頻繁訪問的文件或數據放入內存中進行操做處理,由於內存讀寫操做比直接磁盤讀寫的效率要高千倍。數據庫

l             將常常進行讀寫的文件與長期不變的文件獨立出來,分別放置到不一樣的磁盤設備上。緩存

l              對於寫操做頻繁的數據,能夠考慮使用裸設備代替文件系統。性能優化

        

       使用裸設備的優勢有:網絡

ü           數據能夠直接讀寫,不須要通過操做系統級的緩存,節省了內存資源,避免了內存資源爭用。併發

ü           避免了文件系統級的維護開銷,好比文件系統須要維護超級塊、I-node等。oracle

ü           避免了操做系統的cache預讀功能,減小了I/O請求。ide

       使用裸設備的缺點是:

ü            數據管理、空間管理不靈活,須要很專業的人來操做。

 

(2)利用iostat評估磁盤性能

[root@webserver ~]#   iostat -d 2 3

Linux 2.6.9-42.ELsmp (webserver)        12/01/2008      _i686_ (8 CPU)

 

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read      Blk_wrtn

sda               1.87         2.58       114.12        6479462     286537372

 

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               0.00         0.00         0.00              0                0

 

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read    Blk_wrtn

sda               1.00         0.00        12.00             0                24

對上面每項的輸出解釋以下:

Blk_read/s表示每秒讀取的數據塊數。

Blk_wrtn/s表示每秒寫入的數據塊數。

Blk_read表示讀取的全部塊數。

Blk_wrtn表示寫入的全部塊數。

Ø            能夠經過Blk_read/sBlk_wrtn/s的值對磁盤的讀寫性能有一個基本的瞭解,若是Blk_wrtn/s值很大,表示磁盤的寫操做很頻繁,能夠考慮優化磁盤或者優化程序,若是Blk_read/s值很大,表示磁盤直接讀取操做不少,能夠將讀取的數據放入內存中進行操做。

Ø            對於這兩個選項的值沒有一個固定的大小,根據系統應用的不一樣,會有不一樣的值,可是有一個規則仍是能夠遵循的:長期的、超大的數據讀寫,確定是不正常的,這種狀況必定會影響系統性能。

 

 

(3)利用sar評估磁盤性能

         經過sar d組合,能夠對系統的磁盤IO作一個基本的統計,請看下面的一個輸出:

[root@webserver ~]# sar -d 2 3

Linux 2.6.9-42.ELsmp (webserver)        11/30/2008      _i686_ (8 CPU)

 

11:09:33 PM DEV     tps   rd_sec/s   wr_sec/s avgrq-sz avgqu-sz   await svctm   %util

11:09:35 PM dev8-0 0.00 0.00            0.00        0.00          0.00         0.00   0.00     0.00

 

11:09:35 PM DEV     tps rd_sec/s    wr_sec/s avgrq-sz avgqu-sz await   svctm   %util

11:09:37 PM dev8-0 1.00 0.00         12.00        12.00         0.00        0.00    0.00     0.00

 

11:09:37 PM   DEV    tps    rd_sec/s wr_sec/s   avgrq-sz avgqu-sz await svctm   %util

11:09:39 PM dev8-0 1.99   0.00         47.76         24.00       0.00        0.50    0.25     0.05

 

Average: DEV          tps    rd_sec/s   wr_sec/s avgrq-sz avgqu-sz    await svctm   %util

Average: dev8-0      1.00   0.00          19.97         20.00       0.00         0.33    0.17     0.02

      須要關注的幾個參數含義:

     await表示平均每次設備I/O操做的等待時間(以毫秒爲單位)。

     svctm表示平均每次設備I/O操做的服務時間(以毫秒爲單位)。

     %util表示一秒中有百分之幾的時間用於I/O操做。

 

 

對以磁盤IO性能,通常有以下評判標準:

     正常狀況下svctm應該是小於await值的,而svctm的大小和磁盤性能有關,CPU、內存的負荷也會對svctm值形成影響,過多的請求也會間接的致使svctm值的增長。

     await值的大小通常取決與svctm的值和I/O隊列長度以及I/O請求模式,若是svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,若是await的值遠高於svctm的值,則表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時能夠經過更換更快的硬盤來解決問題。

     %util項的值也是衡量磁盤I/O的一個重要指標,若是%util接近100%,表示磁盤產生的I/O請求太多,I/O系統已經滿負荷的在工做,該磁盤可能存在瓶頸。長期下去,勢必影響系統的性能,能夠經過優化程序或者經過更換更高、更快的磁盤來解決此問題。

 

5. 網絡性能評估

 

(1)經過ping命令檢測網絡的連通性

(2)經過netstat –i組合檢測網絡接口情況

(3)經過netstat –r組合檢測系統的路由表信息

(4)經過sar –n組合顯示系統的網絡運行狀態

 5、Oracle在Linux下的性能優化

 

Oracle數據庫內存參數的優化

Ø       oracle相關的系統內核參數

Ø       SGAPGA參數設置

 

Oracle下磁盤存儲性能優化

Ø       文件系統的選擇(ext2/ext3xfsocfs2

Ø       Oracle ASM存儲

 1.優化oracle性能參數以前要了解的狀況

1)物理內存有多大

2)操做系統估計要使用多大內存

3)數據庫是使用文件系統仍是裸設備

4)有多少併發鏈接

5)應用是OLTP類型仍是OLAP類型

相關文章
相關標籤/搜索