ksvcreate: Process(m000) creation failed

来源:http://www.cnblogs.com/kerrycode/archive/2016/01/22/5151279.html
-Advertisement-
Play Games

一測試伺服器資料庫(Oracle Database 10g Release 10.2.0.5.0 - 64bit Production)突然訪問不了,檢查發現資料庫處於掛起模式(hang mode),檢查告警日誌,發現有“ksvcreate: Process(m000) creation faile...


一測試伺服器資料庫(Oracle Database 10g Release 10.2.0.5.0 - 64bit Production)突然訪問不了,檢查發現資料庫處於掛起模式(hang mode),檢查告警日誌,發現有“ksvcreate: Process(m000) creation failed”,”kkjcre1p: unable to spawn jobq slave process“之類的錯誤信息。具體如下所示:

Sun Jan 17 09:56:05 CST 2016
Thread 1 advanced to log sequence 1729 (LGWR switch)
  Current log# 1 seq# 1729 mem# 0: /u01/oradata/SCM2/redo01.log
Sun Jan 17 21:34:01 CST 2016
Thread 1 advanced to log sequence 1730 (LGWR switch)
  Current log# 2 seq# 1730 mem# 0: /u01/oradata/SCM2/redo02.log
Mon Jan 18 09:06:00 CST 2016
ksvcreate: Process(m000) creation failed
Mon Jan 18 09:12:50 CST 2016
WARNING: inbound connection timed out (ORA-3136)
Mon Jan 18 09:37:13 CST 2016
Thread 1 advanced to log sequence 1731 (LGWR switch)
  Current log# 3 seq# 1731 mem# 0: /u01/oradata/SCM2/redo03.log
Mon Jan 18 09:43:10 CST 2016
kkjcre1p: unable to spawn jobq slave process 
Mon Jan 18 09:43:10 CST 2016
Errors in file /u01/app/oracle/admin/SCM2/bdump/scm2_cjq0_586.trc:

clip_image001

當時開發人員急著測試,沒時間給我研究具體原因,所以就重啟了資料庫實例(不能通過shutdown immeidate關閉,只能通過shutdown abort關閉)。

關於告警日誌裡面的錯誤信息,我們看出m000進程創建失敗,PMON進程無法啟動該進程。一般情況下,PMON無法啟動進程原因有下麵一些:

1、Oracle連接數超過進程數限制。(正是由於Oracle達到了進程數限制,進而PMON無法創建m000進程)

2、進程死鎖。

Bug 8426816 PMON may hang cleaning up a dead process (rare)

clip_image002

3、Bug引起的

Database hangs With Message 'Ksvcreate: Process(M001) Creation Failed' (文檔 ID 1233079.1)

clip_image003

事後我檢查了一下v$resource_limit,發現會話連接數、進程數並沒有超。那麼完全可以排除這個因素,那麼現在就有可能是進程死鎖或bug造成的

clip_image004

同事在檢查過程中發現Physic memory資源嚴重不足,引起了Swap頻繁讀寫。繼續檢查SGA參數發現sga_max_size、sga_target設置過大(這台測試伺服器是虛擬機做的克隆,生產環境的RAM為64G,SGA也設置較大,克隆過後ORACLE實例啟動不了,調整了SGA_TARGET、SGA_MAX_SIZE等參數後才啟動成功,但是不知為什麼sga_max_size設置了成了11264M(11G),有可能是當時要設置為1G多,因為物理記憶體才3G多,但是不知是手抖了還是搞暈了,當然也不排除後面被人改掉,居然設置成了11264M大小,汗顏啊。居然運行了這麼久直到最近才出現問題,測試資料庫基本不會做巡檢)

clip_image005

clip_image001[6]

然後在Troubleshooting Guide (TSG) - Ksvcreate: Process(xxxx) Creation Failed / ORA-00445: Background Process "xxxx" Did Not Start After n Seconds (文檔 ID 1379200.1) 裡面發現當OS的資源或設置不正確時,尤其是物理記憶體或swap不足時,將會導致不能生成新的進程。英文原文如下:

OS Configuration Checks

This error may be observed due to lack of OS resources or incorrect configuration, typically memory or swap may be insufficient to spawn a new process. Please check the list below to verify the OS settings and configuration

當然關於這點我和同事有些爭議。不過我認為是這些導致資料庫出現這些問題的。修改SGA相關參數應該能解決這個問題,不過還需觀察一段時間。

 

另外,關於kswapd0進程,在博客調整linux內核儘量用記憶體,而不用swap裡面有較詳細介紹,摘抄部分內容如下所示:

Linux uses kswapd for virtual memory management such that pages that havebeen recently accessed are kept in memory and less active pages are paged outto disk.

(what is a page?)…Linux uses manages memory in units called pages.

So,the kswapd process regularly decreases the ages of unreferencedpages…and at the end they are paged out(moved out) to disk

kswapd0進程的作用:它是虛擬記憶體管理中,負責換頁的,操作系統每過一定時間就會喚醒kswapd ,看看記憶體是否緊張,如果不緊張,則睡眠,在 kswapd 中,有2 個閥值,pages_hige 和 pages_low,當空閑記憶體頁的數量低於 pages_low的時候,kswapd進程就會掃描記憶體並且每次釋放出32 個free pages,直到 free page 的數量到達pages_high。

physical mem 不足,引起 swap 頻繁讀寫。kswapd0 是系統的虛擬記憶體管理程式,如果物理記憶體不夠用,系統就會喚醒 kswapd0 進程,由 kswapd0 分配磁碟交換空間作緩存,因而占用大量的 CPU 資源。

 

參考資料:

http://www.myjishu.com/?p=80

http://www.nowamagic.net/librarys/veda/detail/2539


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

-Advertisement-
Play Games
更多相關文章
  • SQL Server代理是所有實時資料庫的核心。代理有很多不明顯的用法,因此系統的知識,對於開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。如我們在這個系列的文章里所見,SQL Server代理作業由一些列的作業步驟組成,每個步驟是需要執行的不同類型工作。另外在每個步驟里要進行的工作...
  • sqlplus在啟動時會自動運行兩個腳本:glogin.sql、login.sql這兩個文件 執行順序為 1.預設在在$ORACLE_HOME/sqlplus/admin路徑下查找glogin.sql文件執行 2.預設在在當前路徑下查找login.sql文件執行,若未查找到對應文件則執行3 ...
  • -- 創建雇員表:empCREATE TABLE emp( empno INT, -- 員工編號 ename VARCHAR(50), -- 員工姓名 job VARCHAR(50), -- 員工工作 mgr INT, -- 領導編號 hiredate DATE, -- 入職日期 sa...
  • 第一章 第一個C#程式Vs2012密鑰RBCXF-CVBGR-382MK-DFHJ4-C69G801..net和C#的區別大概在2000年,微軟推出了一種革命性的產品--.NET(戰略)目標:任何人,在任何地方,使用任何終端設備,都可以訪問微軟提供的服務。.net Framew...
  • 在轉移資料庫,進行數據導入的時候,遇到一件麻煩事,就是表間外鍵約束的存在,導致insert頻頻報錯,批量執行sql語句又是順序執行,沒辦法我只好手動輸入。 然後輸入到一半靈光一閃,為什麼不先把外鍵約束全部禁用先呢?於是我百度到以下資料:oracle刪除(所有)約束禁用(所有)約束啟用(所有)約束(....
  • 1.第一篇 概述
  • 常見的資料庫連接問題無外乎是在資料庫伺服器本地可以連接SQL Server,但通過其他伺服器就不可以連接。但這次我卻碰到了相反的情況,在伺服器本地無法通過IP/實例名連接,但從其他伺服器卻可以。而且每次重啟後問題短暫消失,不多久後,又重現。我還是第一次碰到這樣的問題。通過深究後找到了根本原因:竟然....
  • 1.常用的分散式文件系統有NFS
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...