sqlplus 登入時快時慢問題診斷
客戶反映前端系統反映很慢,自己透過sqlplus登入發現時而正常時而卡頓,登入之後有沒有明顯症狀,需要診斷原因。
因為客戶反映登入之後並沒有異常,所以先不懷疑是db端出現了效能問題,必須先從客戶端程式下手,對於診斷登入問
題,需要調查登入階段時間都花費在了那些呼叫上, 於是需要可以提供strace 輸出:
strace -f -ttt -o sqlplus.trc sqlplus / as sysdba
收集資訊如下:
+ sqlplus.trc
11114 1468996741.620272 execve("/u01/app/oracle/product/11.2.0/bin/sqlplus", ["sqlplus", "system/spring"], [/* 29 vars */]) = 0
<skipping>...............
11114 1468996741.849734 read(11, <unfinished ...>
11115 1468996741.849800 getrusage(RUSAGE_SELF, {ru_utime={0, 8998}, ru_stime={0, 28995}, ...}) = 0
<skipping>.....too much getrusage here
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11111_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11112_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11113_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11114_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11116_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11117_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11118_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
<skipping>.....too much open here
11115 1468996743.559319 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_122.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = 8 <<<1.7s
<skipping>....
11114 1468996743.579234 read(0, "exit\n", 1024) = 5
11114 1468996747.659642 write(10, "\0\r\0\0\6\0\0\0\0\0\3\t\10", 13 <unfinished ...> <<<4s elapsed
11115 1468996747.659687 <... read resumed> "\0\r\0\0\6\0\0\0\0\0\3\t\10", 8208) = 13
11114 1468996747.659702 <... write resumed> ) = 13
首先分析第一個trace檔案,根據時間戳查詢花費時間最多的地方,的確能發現一處時間明顯變化地方,就是 read函式
居然花費了4s,非常可疑,經過自己測試發現原來read函式時間就是sqlplus顯示登入之後的提示符到最後客戶輸入exit
命令的時間差,若是是正常情況,剩下並沒有發現其他時間戳有明顯跳變情況,因為整個trace檔案非常大,所以只能一
點點從頭閱讀,忽然發現trace檔案中間有大量的/u01/app/oracle/admin/orcl/adump/orcl_ora_nnn_1.aud出現,一共有
上百個檔案,所有檔案讀完花費了1.7s,問題原因就發生在了這裡,這些檔案是審計檔案可以隨時備份刪除。於是讓客
戶理這些檔案之後再次登入,明顯好轉。至此問題解決,至於客戶反映時快時慢是因為客戶是RAC系統,而另外一個實
例目錄下並沒有這些檔案,所以有時候登入tns形式到第二個例項就沒有這個問題。
sqlplus 登入時快時慢問題診斷
客戶反映前端系統反映很慢,自己透過sqlplus登入發現時而正常時而卡頓,登入之後有沒有明顯症狀,需要診斷原因。
因為客戶反映登入之後並沒有異常,所以先不懷疑是db端出現了效能問題,必須先從客戶端程式下手,對於診斷登入問
題,需要調查登入階段時間都花費在了那些呼叫上, 於是需要可以提供strace 輸出:
strace -f -ttt -o sqlplus.trc sqlplus / as sysdba
收集資訊如下:
+ sqlplus.trc
11114 1468996741.620272 execve("/u01/app/oracle/product/11.2.0/bin/sqlplus", ["sqlplus", "system/spring"], [/* 29 vars */]) = 0
<skipping>...............
11114 1468996741.849734 read(11, <unfinished ...>
11115 1468996741.849800 getrusage(RUSAGE_SELF, {ru_utime={0, 8998}, ru_stime={0, 28995}, ...}) = 0
<skipping>.....too much getrusage here
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11111_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11112_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11113_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11114_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11116_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11117_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11118_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
<skipping>.....too much open here
11115 1468996743.559319 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_122.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = 8 <<<1.7s
<skipping>....
11114 1468996743.579234 read(0, "exit\n", 1024) = 5
11114 1468996747.659642 write(10, "\0\r\0\0\6\0\0\0\0\0\3\t\10", 13 <unfinished ...> <<<4s elapsed
11115 1468996747.659687 <... read resumed> "\0\r\0\0\6\0\0\0\0\0\3\t\10", 8208) = 13
11114 1468996747.659702 <... write resumed> ) = 13
首先分析第一個trace檔案,根據時間戳查詢花費時間最多的地方,的確能發現一處時間明顯變化地方,就是 read函式
居然花費了4s,非常可疑,經過自己測試發現原來read函式時間就是sqlplus顯示登入之後的提示符到最後客戶輸入exit
命令的時間差,若是是正常情況,剩下並沒有發現其他時間戳有明顯跳變情況,因為整個trace檔案非常大,所以只能一
點點從頭閱讀,忽然發現trace檔案中間有大量的/u01/app/oracle/admin/orcl/adump/orcl_ora_nnn_1.aud出現,一共有
上百個檔案,所有檔案讀完花費了1.7s,問題原因就發生在了這裡,這些檔案是審計檔案可以隨時備份刪除。於是讓客
戶理這些檔案之後再次登入,明顯好轉。至此問題解決,至於客戶反映時快時慢是因為客戶是RAC系統,而另外一個實
例目錄下並沒有這些檔案,所以有時候登入tns形式到第二個例項就沒有這個問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2141848/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用strace診斷奇怪的sqlplus登入問題SQL
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- 執行計劃問題導致處理速度時快時慢的問題
- 網站進入時快時慢是怎麼回事網站
- ssh登入慢問題處理
- Oracle 12.1.0.2 impdp匯入慢診斷Oracle
- ssh登入慢問題解決方法
- 解決ssh登入慢的問題
- SQL問題診斷SQL
- strace解決sqlplus登陸緩慢的問題一例SQL
- linux pptpd賬號同時登入的問題Linuxpptp
- GreysJava線上問題診斷工具Java
- 問題診斷和PLSQL方面SQL
- 如何診斷oracle資料庫執行緩慢或hang住的問題Oracle資料庫
- Oracle系統執行慢及資源消耗多問題診斷 [final]Oracle
- 倒數計時快取時間問題總結快取
- GC BUFFER BUSY問題的診斷GC
- 使用crsctl工具診斷cluster問題
- sqlplus “/ as sysdba”登入的時候提示沒有許可權SQL
- [HP-UX] User登入時執行命令特別慢(csh)UX
- AIX 6.1安裝RAC出現時斷時續問題AI
- 使用MTR命令診斷網路問題
- Oracle Stream實戰(10)—問題診斷Oracle
- Oracle效能問題診斷一例Oracle
- oracle程式異常中止時登入掛起問題的解決Oracle
- aix 遠端登陸緩慢問題AI
- 登陸sqlplus出現問號的問題SQL
- sqlplus 可以登入 plsql 不能登入SQL
- 如何診斷和解決db2問題DB2
- Timesten問題診斷手冊總結
- bea記憶體洩漏問題診斷記憶體
- Lotus Domino Administration Process 問題診斷
- 診斷Oracle資料庫Hanging問題Oracle資料庫
- GC機制和OutOfMemory問題的診斷GC
- 使用sqlplus等命令時0509*問題的解決SQL
- DNS導致資料庫登入緩慢的問題解決DNS資料庫
- 執行計劃沒變,執行時快時慢是怎麼回事?
- 奇怪的問題: 資料庫使用者登入的時候報錯資料庫