檢視當前最消耗CPU/Memory的oracle程式
找出LINUX最消耗資源的程式
TOP
檢視當前最消耗CPU/Memory的程式資訊
主要引數
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級使用者,則top命令將會以最高的優先序執行。
c:顯示程式完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成後將會退出to
顯示引數:
PID(Process ID):程式標示號。
USER:程式所有者的使用者名稱。
PR:程式的優先順序別。
NI:程式的優先順序別數值。
VIRT:程式佔用的虛擬記憶體值。
RES:程式佔用的實體記憶體值。
SHR:程式使用的共享記憶體值。
S:程式的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程式優先值是負數。
%CPU:該程式佔用的CPU使用率。
%MEM:該程式佔用的實體記憶體和總記憶體的百分比。
TIME+:該程式啟動後佔用的總的CPU時間。
Command:程式啟動的啟動命令名稱,如果這一行顯示不下,程式會有一個完整的命令列。
top命令使用過程中,還可以使用一些互動的命令來完成其它引數的功能。這些命令是透過快捷鍵啟動的。
<空格>:立刻重新整理。
P:根據CPU使用大小進行排序。
T:根據時間、累計時間排序。
q:退出top命令。
m:切換顯示記憶體資訊。
t:切換顯示程式和CPU狀態資訊。
c:切換顯示命令名稱和完整命令列。
M:根據使用記憶體大小進行排序。
W:將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。
PS
可以使用一下命令查使用記憶體最多的5個程式
ps -aux | sort -k4nr | head 5
可以使用一下命令查使用CPU最多的5個程式
ps -aux | sort -k3nr | head 5
VMSTAT
只能給出當前CPU/MEMORY/IO的總體效能,沒有單個程式資訊
透過以上命令大致可以確定OS消耗最多資源的程式資訊,另外可以從資料庫層面檢視TOP程式
找出過去4個小時內登陸且在近30分鐘呼叫過的sql
Find Sessions with the Highest CPU Consumption
-- sessions with highest CPU consumption SELECT s.sid, s.serial#, p.spid as "OS PID",s.username, s.module, st.value/100 as "CPU sec" FROM v$sesstat st, v$statname sn, v$session s, v$process p WHERE sn.name = 'CPU used by this session' -- CPU AND st.statistic# = sn.statistic# AND st.sid = s.sid AND s.paddr = p.addr AND s.last_call_et < 1800 -- active within last 1/2 hour AND s.logon_time > (SYSDATE - 240/1440) -- sessions logged on within 4 hours ORDER BY st.value;
SID SERIAL# OS PID USERNAME MODULE CPU sec ---------- ---------- ------------ -------------------- ---------------------------------------- ---------- 141 1125 15315 SYS sqlplus@coehq2 (TNS V1-V3) 8.25 147 575 10577 SCOTT SQL*Plus 258.08 131 696 10578 SCOTT SQL*Plus 263.17 139 218 10576 SCOTT SQL*Plus 264.08 133 354 10583 SCOTT SQL*Plus 265.79 135 277 10586 SCOTT SQL*Plus 268.02 |
Find Sessions with Highest Waits of a Certain Type
-- sessions with the highest time for a certain wait SELECT s.sid, s.serial#, p.spid as "OS PID", s.username, s.module, se.time_waited FROM v$session_event se, v$session s, v$process p WHERE se.event = '&event_name' AND s.last_call_et < 1800 -- active within last 1/2 hour AND s.logon_time > (SYSDATE - 240/1440) -- sessions logged on within 4 hours AND se.sid = s.sid AND s.paddr = p.addr ORDER BY se.time_waited;
SQL> / Enter value for event_name: db file sequential read
SID SERIAL# OS PID USERNAME MODULE TIME_WAITED ---------- ---------- ------------ -------------------- ---------------------------------------- ----------- 141 1125 15315 SYS sqlplus@coehq2 (TNS V1-V3) 4 147 575 10577 SCOTT SQL*Plus 45215 131 696 10578 SCOTT SQL*Plus 45529 135 277 10586 SCOTT SQL*Plus 50288 139 218 10576 SCOTT SQL*Plus 51331 133 354 10583 SCOTT SQL*Plus 51428 |
10g or higher: Find Sessions with the Highest DB Time
-- sessions with highest DB Time usage SELECT s.sid, s.serial#, p.spid as "OS PID", s.username, s.module, st.value/100 as "DB Time (sec)" , stcpu.value/100 as "CPU Time (sec)", round(stcpu.value / st.value * 100,2) as "% CPU" FROM v$sesstat st, v$statname sn, v$session s, v$sesstat stcpu, v$statname sncpu, v$process p WHERE sn.name = 'DB time' -- CPU AND st.statistic# = sn.statistic# AND st.sid = s.sid AND sncpu.name = 'CPU used by this session' -- CPU AND stcpu.statistic# = sncpu.statistic# AND stcpu.sid = st.sid AND s.paddr = p.addr AND s.last_call_et < 1800 -- active within last 1/2 hour AND s.logon_time > (SYSDATE - 240/1440) -- sessions logged on within 4 hours AND st.value > 0;
SID SERIAL# OS PID USERNAME MODULE DB Time (sec) CPU Time (sec) % CPU ---------- ---------- ------------ -------- ---------------------------------------- ------------- -------------- ---------- 141 1125 15315 SYS sqlplus@coehq2 (TNS V1-V3) 12.92 9.34 72.29 |
使用dbms_system.set_env/oradebug/dbms_monitor對相應程式作10046跟蹤,然後使用tkprof格式化
tkprof <trace file name> <output file name> sort=fchela,exeela,prsela
根據相應資訊可以進一步確定資源都消耗在哪些地方
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2130257/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux(CentOS) 檢視當前佔用CPU或記憶體最多的K個程式LinuxCentOS記憶體
- 如何快速定位當前資料庫消耗 CPU 最高的 sql 語句?資料庫SQL
- Oracle 檢查當前資料庫CPU和PSU補丁資訊Oracle資料庫
- Oracle資料庫 11.2.0.4 EMON程式持續消耗CPUOracle資料庫
- java檢測當前CPU負載狀態的方法Java負載
- 檢視git當前版本號Git
- 如何檢視Linux 當前訪問ipLinux
- Linux檢視環境變數當前資訊和檢視命令Linux變數
- SQLServer如何查詢近3分鐘最消耗CPU的SQLSQLServer
- Linux檢視當前目錄下的檔案大小Linux
- Python 檢視當前環境所有變數的大小Python變數
- 使用sestatus命令來檢視SELinux的當前狀態Linux
- 檢視當前pg會話連線數會話
- android檢視當前應用的的包名和activityAndroid
- 【MEMORY】Oracle記憶體結構資源常用檢視及sqlOracle記憶體SQL
- 檢視cpu的個數
- 檢視linux系統當前登陸的使用者Linux
- Java 例項 - 如何檢視當前 Java 執行的版本?Java
- git 檢視當前分支指向提交物件SHA值Git物件
- 在Linux中,如何檢視當前系統的版本資訊?Linux
- 小程式播放當前視訊關閉其他視訊
- Linux當前當前程式Linux
- MySQL 5.7定位消耗CPU高的SQLMySql
- 檢視temp表空間的消耗明細情況
- 使用 SAP ABAP Memory Inspector 對應用程式消耗記憶體進行檢測時常犯的錯誤試讀版記憶體
- Oracle普通檢視和物化檢視的區別Oracle
- 11、Oracle中的檢視Oracle
- Centos下檢視當前目錄大小及檔案個數CentOS
- 【TUNE_ORACLE】檢視系統CPU和IO情況SQL參考OracleSQL
- 怎麼檢視蘋果iPhone XS電池當前的實際可用容量?蘋果iPhone
- Logcat怎麼設定filter,檢視當前執行app的log資訊GCFilterAPP
- 檢視當前 linux 主機支援什麼型別的硬體解碼?Linux型別
- pip debug —— 檢視當前版本的python直譯器支援的wheel包型別Python型別
- Linux檢視CPU使用率Linux
- win10自帶cpu溫度怎麼檢視_win10檢視cpu溫度的方法Win10
- Linux 下檢視系統當前登入使用者資訊Linux
- 1.4.2. 檢查當前版本號
- 檢視oracle臨時表空間佔用率的檢視Oracle
- 華納雲:如何在CentOS中檢視當前系統的負載情況CentOS負載