国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法與流程

      文檔序號:11276181閱讀:883來源:國知局
      一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法與流程

      本發(fā)明涉及模塊化數(shù)據(jù)中心mdc、通信機房等領域,具體地說是一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法。



      背景技術:

      模塊化數(shù)據(jù)中心(moduledatacenter,mdc)是基于云計算的新一代數(shù)據(jù)中心部署形式,為了應對云計算、虛擬化、集中化、高密化等服務器發(fā)展的趨勢,其采用模塊化設計理念,最大程度的降低基礎設施對機房環(huán)境的耦合。集成了供配電、制冷、機柜、氣流遏制、綜合布線、動環(huán)監(jiān)控、消防等子系統(tǒng),提高數(shù)據(jù)中心的整體運營效率,實現(xiàn)快速部署、彈性擴展和綠色節(jié)能。

      linux操作系統(tǒng)內核空間和用戶空間頁表的管理方式不同,具體來說,每個進程都有不同的用戶空間頁表,而內核對于訪問內存時需要的頁表是單獨進行管理的,有單獨的內核頁表,進程的頁表會與內核主頁表進行同步,所有進程共享linux的內核空間。

      現(xiàn)有技術的技術方案,主要是通過shell腳本實現(xiàn),一般的操作流程如下:

      1)使用free命令查看linux系統(tǒng)內存使用情況;

      2)查看截取剩余內存free的數(shù)值命令;

      3)編寫內存監(jiān)控的腳本文件;

      4)以文本文件的方式保存結果;

      5)查看內存監(jiān)控的結果文件。

      目前已經存在的腳本可以對內存進行檢測和監(jiān)控,但是基本都是針對用戶空間的,由于內核空間運行于特權級別,所以操作起來更加困難。此外,動態(tài)分析內核空間的工具中大多數(shù)針對的是內存泄露,溢出等常見錯誤的檢測,缺乏對內存訪問信息的監(jiān)控工具。



      技術實現(xiàn)要素:

      本發(fā)明的技術任務是提供一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法。

      本發(fā)明的技術任務是按以下方式實現(xiàn)的,該方法要求linux內核是模塊化的,支持模塊的動態(tài)插入;該方法主要由核心模塊、內核內存訪問信息監(jiān)控模塊、內核內存溢出檢測模塊、內核內存統(tǒng)計信息模塊和界面統(tǒng)一展示模塊實現(xiàn);

      所述的核心模塊是基礎模塊,會捕獲所監(jiān)控內核內存的全部訪問,并提供訪問處理接口和管理監(jiān)控內存的接口;

      所述的內核內存訪問信息監(jiān)控模塊對所監(jiān)控內存的所有訪問都進行具體判斷處理;

      所述的內核內存溢出檢測模塊檢測linux內核模塊的動態(tài)內存訪問越界的問題;

      所述的內核內存統(tǒng)計信息模塊用于統(tǒng)計讀寫操作、進程、用戶信息;

      所述的界面統(tǒng)一展示模塊用于通過圖形化界面展現(xiàn)監(jiān)控結果,實時監(jiān)控訪問內存信息。

      所述的核心模塊對外提供兩類接口,一類注冊或注銷的接口,用來注冊或者注銷監(jiān)控模塊的接口;另一類添加或刪除監(jiān)控內存的接口,用來控制所要監(jiān)控的內存模塊的范圍。

      所述的內核內存監(jiān)控方法的步驟如下:

      1)向核心模塊動態(tài)添加內核內存訪問信息監(jiān)控模塊;

      2)向核心模塊動態(tài)添加內核內存溢出檢測模塊;

      3)向核心模塊動態(tài)添加內核內存統(tǒng)計信息監(jiān)控模塊;

      4)向核心模塊成功注冊后,內核內存訪問信息監(jiān)控模塊利用通知機制等待訪問內存;

      5)內核內存訪問,向核心模塊添加需要監(jiān)控檢測內存信息,對于特別危險的行為設置強制結束;

      6)進程產生缺頁異常;

      7)判斷是否因監(jiān)控引起的缺頁異常;

      8)否,系統(tǒng)正常處理;

      9)是,進入內核內存訪問信息監(jiān)控模塊進行處理;

      10)根據(jù)當前寄存器的信息和當前的進程控制塊current來記錄進程的訪問信息;

      11)設置頁表項pte為頁存在狀態(tài);

      12)修改標志寄存器為單步調試;

      13)內核內存正常訪問;

      14)產生單步中斷,然后通知機制會通知內核內存溢出檢測模塊,啟動內核內存溢出檢測模塊;

      15)復制可執(zhí)行代碼到內核空間,內核內存溢出檢測模塊做預處理,隨后繼續(xù)執(zhí)行初始化函數(shù);

      16)內核內存溢出檢測的主要方法是在申請內存塊的時候,增加申請內存的大小,將這些申請額外的空間作為檢測區(qū)域;然后向核心模塊添加這個較大的內存塊;當訪問該內存塊時,通過判斷是否訪問到了邊界區(qū)域來確定是否發(fā)生了內存越界訪問;

      17)進入內核內存訪問信息監(jiān)控模塊,設置頁表項pte為缺頁狀態(tài),恢復標志寄存器;

      18)進入內核內存統(tǒng)計信息模塊,對于同一個進程,信息只記錄一份,包括對該內存的讀、寫次數(shù),訪問時間;

      19)可視化界面統(tǒng)一展示模塊讀取內核內存監(jiān)控結果,并在用戶空間進行呈現(xiàn);

      20)重復(5)~(19)步驟,完成循環(huán)監(jiān)控過程。

      本發(fā)明的一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法和現(xiàn)有技術相比,有助于動環(huán)監(jiān)控主機的linux調試,尤其是在涉及底層驅動代碼調試時,可以快速定位程序的內存訪問位置,有利于開發(fā)及調試中深層次問題的定位,提升動環(huán)監(jiān)控主機的穩(wěn)定性與可靠性,并保障業(yè)務系統(tǒng)的穩(wěn)定、可靠運行。

      附圖說明

      附圖1為一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法的系統(tǒng)架構圖。

      附圖2為一種動環(huán)監(jiān)控主機的內核內存監(jiān)控方法的流程示意圖。

      具體實施方式

      實施例1:

      該方法要求linux內核是模塊化的,支持模塊的動態(tài)插入;該方法主要由核心模塊、內核內存訪問信息監(jiān)控模塊、內核內存溢出檢測模塊、內核內存統(tǒng)計信息模塊和界面統(tǒng)一展示模塊實現(xiàn);

      所述的核心模塊是基礎模塊,會捕獲所監(jiān)控內核內存的全部訪問,并提供訪問處理接口和管理監(jiān)控內存的接口;所述的核心模塊對外提供兩類接口,一類注冊或注銷的接口,用來注冊或者注銷監(jiān)控模塊的接口;另一類添加或刪除監(jiān)控內存的接口,用來控制所要監(jiān)控的內存模塊的范圍。

      所述的內核內存訪問信息監(jiān)控模塊對所監(jiān)控內存的所有訪問都進行具體判斷處理;

      所述的內核內存溢出檢測模塊檢測linux內核模塊的動態(tài)內存訪問越界的問題;

      所述的內核內存統(tǒng)計信息模塊用于統(tǒng)計讀寫操作、進程、用戶信息;

      所述的界面統(tǒng)一展示模塊用于通過圖形化界面展現(xiàn)監(jiān)控結果,實時監(jiān)控訪問內存信息。

      所述的內核內存監(jiān)控方法的步驟如下:

      1)向核心模塊動態(tài)添加內核內存訪問信息監(jiān)控模塊;

      2)向核心模塊動態(tài)添加內核內存溢出檢測模塊;

      3)向核心模塊動態(tài)添加內核內存統(tǒng)計信息監(jiān)控模塊;

      4)向核心模塊成功注冊后,內核內存訪問信息監(jiān)控模塊利用通知機制等待訪問內存;

      5)內核內存訪問,向核心模塊添加需要監(jiān)控檢測內存信息,對于特別危險的行為設置強制結束;

      6)進程產生缺頁異常;

      7)判斷是否因監(jiān)控引起的缺頁異常;

      8)否,系統(tǒng)正常處理;

      9)是,進入內核內存訪問信息監(jiān)控模塊進行處理;

      10)根據(jù)當前寄存器的信息和當前的進程控制塊current來記錄進程的訪問信息;

      11)設置頁表項pte為頁存在狀態(tài);

      12)修改標志寄存器為單步調試;

      13)內核內存正常訪問;

      14)產生單步中斷,然后通知機制會通知內核內存溢出檢測模塊,啟動內核內存溢出檢測模塊;

      15)復制可執(zhí)行代碼到內核空間,內核內存溢出檢測模塊做預處理,隨后繼續(xù)執(zhí)行初始化函數(shù);

      16)內核內存溢出檢測的主要方法是在申請內存塊的時候,增加申請內存的大小,將這些申請額外的空間作為檢測區(qū)域;然后向核心模塊添加這個較大的內存塊;當訪問該內存塊時,通過判斷是否訪問到了邊界區(qū)域來確定是否發(fā)生了內存越界訪問;

      17)進入內核內存訪問信息監(jiān)控模塊,設置頁表項pte為缺頁狀態(tài),恢復標志寄存器;

      18)進入內核內存統(tǒng)計信息模塊,對于同一個進程,信息只記錄一份,包括對該內存的讀、寫次數(shù),訪問時間;

      19)可視化界面統(tǒng)一展示模塊讀取內核內存監(jiān)控結果,并在用戶空間進行呈現(xiàn);

      20)重復(5)~(19)步驟,完成循環(huán)監(jiān)控過程。

      通過上面具體實施方式,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的幾種具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。

      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1