Oracle實例占用超高CPU排查

来源:https://www.cnblogs.com/panda-sweets/archive/2020/01/09/12121622.html
-Advertisement-
Play Games

CPU主要功能:處理指令、執行操作、要求進行動作、控制時間、處理數據。 結合資料庫實例CPU占用高,可能的原因是資料庫在執行大量的操作(全表查詢、大量排序等)。 由於公司沒有DBA,遇到資料庫問題只能自己排查。 一、是否存在死鎖 查詢死鎖以及解鎖的語句參考下方: 查看死鎖ID 查看死鎖ID SELE ...


CPU主要功能:處理指令、執行操作、要求進行動作、控制時間、處理數據。

結合資料庫實例CPU占用高,可能的原因是資料庫在執行大量的操作(全表查詢、大量排序等)。

由於公司沒有DBA,遇到資料庫問題只能自己排查。

一、是否存在死鎖

查詢死鎖以及解鎖的語句參考下方:
  • 查看死鎖ID
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#, l.Oracle_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
  • 查看表名稱
select b.owner,b.object_name,a.session_id,a.locked_mode  from v$locked_object a,dba_objects b  where b.object_id = a.object_id; 
  • 手工關閉死鎖
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)  通過查詢死鎖也發現了一些死鎖,殺掉後CPU沒有降下來,只能重新排查。

二、藉助PLSQL查詢定時job和session

通過PL/SQL查詢到,不存在定時的JOB執行。 通過Tools-Sessions,發現存在較多資料庫連接與訪問,但較難定位到具體那個sql或表存在問題。 於是,Kill了所有Session,CPU得到緩解,但根本原因未查到,隔幾分鐘又反覆了。

三、查詢資料庫中的等待事件

SELECT P.PID,
S.SID,
S.SERIAL#,
S.USERNAME,
Q.SQL_ID,
Q.SQL_TEXT,
Q.SQL_FULLTEXT,
W.EVENT,
W.WAIT_TIME,
W.STATE,
CASE
WHEN W.STATE = 'WAITING' THEN
W.SECONDS_IN_WAIT
WHEN W.STATE = 'WAITING KNOWN TIME' THEN
W.WAIT_TIME
END AS SEC_IN_WAIT
FROM V$SESSION S, V$SESSION_WAIT W, V$SQLAREA Q, V$PROCESS P
WHERE S.SID = W.SID
AND S.SQL_ID = Q.SQL_ID
AND P.ADDR = S.PADDR
AND W.EVENT NOT LIKE 'SQL*Net%'
AND S.USERNAME IS NOT NULL
AND W.WAIT_TIME >= 0
ORDER BY W.WAIT_TIME DESC;

發現存在等待事件,分析待執行的SQL發現存在多表(百萬數據)全量關聯查詢。

於是對數據以及SQL進行了相應優化,CPU占用較高問題得到根本解決。

四、過程總結

造成CPU暴增的原因有很多,思路也有很多,後續如果遇到可以參考上述思路,精准定位到問題併進行優化。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 這是我第一次在寫博客,裡面記錄了我配置LAMP遇到的各種各樣的細節,也許表述不夠準確,希望大佬給於批評指正 環境 OS Ubuntu server 18.04.3 遠程連接軟體 cmder 文件傳輸軟體 winSCP 安裝和遠程連接 其實安裝的時候就需要註意兩點 1. 讓你輸入鏡像地址的時候, ...
  • MAC安裝MacPorts 卡在“正在運行軟體包腳本”的解決辦法 1. 點擊右上角強制結束掉“安裝器” 2. 打開terminal, 輸入命令“ps ef | grep install”, 找到遺留進程, kill掉 3. 安裝Xcode 4. 輸入命令“xcodebuild license” 並同 ...
  • 網上查了很多資料瞭解網卡啟動不了的原因,今天總結一下幾種網卡啟動不了的解決方案,以備參考。 systemctl restart network //重啟網卡 返回報錯: Restarting network (via systemctl): Job for network.service faile ...
  • win10自帶郵箱如何使用? 相信很多小伙伴在登錄win10自帶的郵箱登錄QQ郵箱時,顯示同步失敗或者登錄超時,但又找不到相關的資料,下麵是我自己郵箱的操作流程,小伙伴可以嘗試一下,有什麼問題留言即可 一、準備工作: 登錄網頁版QQ郵箱,設置→賬戶→找到“POP3/IMAP/SMTP/Exchang ...
  • hp proliant sl210t伺服器,一般都會帶有兩個陣列卡 一個伺服器自帶的Dynamic Smart Array B120i RAID控制器,一個為Slot卡槽上的Smart Array P420控制器 這裡我們使用Smart Array P420對伺服器的磁碟進行raid 1類型的陣列配 ...
  • 今天碰到個負載高引起的問題但是查看zabbix監控並沒有報警,檢查後發現監控取值與實際伺服器內負載不一致。 解決方法 修改zabbix模板Template OS Linux找到 Processor load (1 min average per core)修改key把 system.cpu.load ...
  • 一.介紹安裝 公司由於linux雲伺服器還沒批下來,暫時先在windows伺服器上測試。Windows版nginx使用本地Win32 API(而非Cygwin模擬層)。當前僅使用select()和poll()(1.15.9)連接處理方法(事件驅動模型),因此不應期望高性能和可伸縮性(在linux上支 ...
  • 參考穀粒學院的linux視頻教程:http://www.gulixueyuan.com/course/300/task/7091/show ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...