Oracle DataFile on NFS lower Performance 處理NFS效能緩慢

記錄一下處理Oracle測試環境Datafile放在NFS上效能緩慢的問題

Problem:

測試環境Datafile放於NFS上,正式環境放於SAM Storage

AP提供問題的SQL,在測試環境跑一天出不來,正式環境則跑5分鐘

SELECT COUNT(1) FROM META_202302
WHERE TO_CHAR(PDATE, 'YYYYMMDD') = '20230215'
AND BID IN ( '03722305','03732606','75988318') AND ESTATUS IN ( '1','2','3','4');

--PROD : 
Elapsed: 00:05:42.05

--TEST : 
Elapsed: 28:04:59.22

透過OEM查詢該SQL,此TABLE資料表大小約600GB,產出執行計劃為全表掃描,而此TABLE為PARTITION Table

使用OEM產生AWR報告,TOP等待第一名是 direct path read

測試UNDO FILE在NFS上的讀取速度,經測約31MB/s,懷疑是NFS的使用資源滿載,導致讀取速度下降

[oraadmin@db1a datafile]$ pwd
/ORADATA_NFS/vin/VIN/datafile
[oraadmin@db1a datafile]$ dd if=o1_mf_undotbs2_l7fy7ffv_.dbf of=/dev/null bs=1M
16414+0 records in
16413+0 records out
17210277888 bytes (17 GB, 16 GiB) copied, 551.143 s, 31.2 MB/s

客戶架構裡還有另一座NFS,查看資源、效能較不吃緊,經與客戶討論後,預計將Oracle Datafile移到該空間

Oracle 18c之後可線上移Datafile,無需Offline與Online

[oraadmin@db1a datafile]$ dd if=o1_mf_undotbs1_lcggc3fh_.dbf of=/dev/null bs=1M
32767+1 records in
32767+1 records out
34358697984 bytes (34 GB, 32 GiB) copied, 212.334 s, 162 MB/s

經測試後讀取有明顯上升

[oraadmin@db1a datafile]$ dd if=o1_mf_undotbs1_lcggc3fh_.dbf of=/dev/null bs=1M
32767+1 records in
32767+1 records out
34358697984 bytes (34 GB, 32 GiB) copied, 212.334 s, 162 MB/s

重新再測試相同語句

SELECT COUNT(1) FROM META_202302
WHERE TO_CHAR(PDATE, 'YYYYMMDD') = '20230215'
AND BID IN ( '03722305','03732606','75988318') AND ESTATUS IN ( '1','2','3','4');

--TEST : 
Elapsed: 04:13:01.59

因客戶以及維護管理需求,暫時不對該SQL進行優化動作,僅以Move Datafile為此次解決方法

張貼留言

0 留言