一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]Linux內(nèi)核需要為臨時(shí)對(duì)象如任務(wù)或者設(shè)備結(jié)構(gòu)和節(jié)點(diǎn)分配內(nèi)存,緩存分配器管理著這些類(lèi)型對(duì)象的緩存?,F(xiàn)代Linux內(nèi)核部署了該緩存分配器以持有緩存,稱(chēng)之為片。不同類(lèi)型的片緩存由片分配器維護(hù)。通過(guò)分析片緩存信息,可以了解系統(tǒng)的運(yùn)行情況,分析是否有資源泄露或者存在不正常的資源使用。
[0003]QffT(QT Widgets for Technical Applicat1ns)是一個(gè)基于LGPL版權(quán)協(xié)議的開(kāi)源項(xiàng)目,可以生成各種統(tǒng)計(jì)圖。它為具有技術(shù)專(zhuān)業(yè)背景的程序提供GUI組件和一組實(shí)用類(lèi),其目標(biāo)是以基于2D方式的窗體部件來(lái)顯示數(shù)據(jù),數(shù)據(jù)源以數(shù)值、數(shù)組或一組浮點(diǎn)數(shù)等方式提供,輸出方式可以是Curves(曲線)、Slider(滾動(dòng)條)、Dials(圓盤(pán))、Compasses(儀表盤(pán))等。該工具庫(kù)基于QT開(kāi)發(fā),所以也繼承了 QT的跨平臺(tái)特性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問(wèn)題是:本發(fā)明提供一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,用戶(hù)可以通過(guò)分析內(nèi)核片緩存的實(shí)時(shí)動(dòng)態(tài)曲線了解系統(tǒng)的運(yùn)行狀況、分析資源的使用情況等。
[0005]本發(fā)明所采用的技術(shù)方案為:
一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,所述方法首先使用Linux命令獲取內(nèi)核片緩存的信息,并將相關(guān)數(shù)據(jù)處理后存儲(chǔ)到數(shù)據(jù)庫(kù)中,之后從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并進(jìn)行可視化處理,使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn)。
[0006]用戶(hù)可以通過(guò)分析內(nèi)核片緩存的實(shí)時(shí)動(dòng)態(tài)曲線了解系統(tǒng)的運(yùn)行狀況、分析資源的使用情況等。
[0007]所述方法基于Linux操作系統(tǒng),實(shí)現(xiàn)流程如下:
1)QT通過(guò)QProcess類(lèi)調(diào)用Linux的slabtop命令,進(jìn)而獲取內(nèi)核的片緩存信息;
2)首先根據(jù)實(shí)際需求,對(duì)獲取的內(nèi)核片緩存信息進(jìn)行處理,然后使用QT中數(shù)據(jù)庫(kù)相關(guān)的類(lèi)(QSqlDatabase類(lèi)、QSqlQuery類(lèi)、QSqlRecord類(lèi)),建立數(shù)據(jù)庫(kù)文件、連接數(shù)據(jù)庫(kù),將處理后的信息存入數(shù)據(jù)庫(kù);
3)連接并打開(kāi)數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并存入對(duì)應(yīng)數(shù)組,作為QWT繪圖的數(shù)據(jù)源;
4)使用QWT繪制實(shí)時(shí)動(dòng)態(tài)曲線,實(shí)現(xiàn)內(nèi)核片緩存信息的可視化處理。
[0008]所述繪制實(shí)時(shí)動(dòng)態(tài)曲線過(guò)程如下:
(1)使用QwtPlot繪制坐標(biāo)軸,設(shè)置實(shí)時(shí)動(dòng)態(tài)曲線的X軸、Y軸;
(2)獲取數(shù)據(jù)并使用QwtPlotCurve繪制相關(guān)的實(shí)時(shí)動(dòng)態(tài)曲線。
[0009]本發(fā)明的有益效果為: 本發(fā)明通過(guò)使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn),用戶(hù)可以通過(guò)分析內(nèi)核片緩存的實(shí)時(shí)動(dòng)態(tài)曲線了解系統(tǒng)的運(yùn)行狀況、分析資源的使用情況等。
【附圖說(shuō)明】
[0010]圖1為內(nèi)核片緩存信息的可視化實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0011]下面參照附圖所示,通過(guò)【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)一步說(shuō)明:
實(shí)施例1:
一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,所述方法首先使用Linux命令獲取內(nèi)核片緩存的信息,并將相關(guān)數(shù)據(jù)處理后存儲(chǔ)到數(shù)據(jù)庫(kù)中,之后從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并進(jìn)行可視化處理,使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn)。
[0012]用戶(hù)可以通過(guò)分析內(nèi)核片緩存的實(shí)時(shí)動(dòng)態(tài)曲線了解系統(tǒng)的運(yùn)行狀況、分析資源的使用情況等。
[0013]實(shí)施例2:
如圖1所示,在實(shí)施例1的基礎(chǔ)上,本實(shí)施例所述方法基于Linux操作系統(tǒng),實(shí)現(xiàn)流程如下:
1)QT通過(guò)QProcess類(lèi)調(diào)用Linux的slabtop命令,進(jìn)而獲取內(nèi)核的片緩存信息;
2)首先根據(jù)實(shí)際需求,對(duì)獲取的內(nèi)核片緩存信息進(jìn)行處理;
然后使用QT中數(shù)據(jù)庫(kù)相關(guān)的類(lèi)(QSqlDatabase類(lèi)、QSqlQuery類(lèi)、QSqlRecord類(lèi)),建立數(shù)據(jù)庫(kù)文件、連接數(shù)據(jù)庫(kù),將處理后的信息存入數(shù)據(jù)庫(kù);
3)連接并打開(kāi)數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并存入對(duì)應(yīng)數(shù)組,作為QWT繪圖的數(shù)據(jù)源;
4)使用QWT繪制實(shí)時(shí)動(dòng)態(tài)曲線,實(shí)現(xiàn)內(nèi)核片緩存信息的可視化處理。
[0014]實(shí)施例3:
在實(shí)施例2的基礎(chǔ)上,本實(shí)施例所述繪制實(shí)時(shí)動(dòng)態(tài)曲線過(guò)程如下:
(1)使用QwtPlot繪制坐標(biāo)軸,設(shè)置實(shí)時(shí)動(dòng)態(tài)曲線的X軸、Y軸;
(2)獲取數(shù)據(jù)并使用QwtPlotCurve繪制相關(guān)的實(shí)時(shí)動(dòng)態(tài)曲線。
[0015]以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專(zhuān)利保護(hù)范圍應(yīng)由權(quán)利要求限定。
【主權(quán)項(xiàng)】
1.一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,其特征在于:所述方法首先使用Linux命令獲取內(nèi)核片緩存的信息,并將相關(guān)數(shù)據(jù)處理后存儲(chǔ)到數(shù)據(jù)庫(kù)中,之后從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并進(jìn)行可視化處理,使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn)。2.根據(jù)權(quán)利要求1所述的一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,其特征在于,所述方法基于Linux操作系統(tǒng),實(shí)現(xiàn)流程如下: 1)QT通過(guò)QProcess類(lèi)調(diào)用Linux的slabtop命令,進(jìn)而獲取內(nèi)核的片緩存信息; 2)首先根據(jù)實(shí)際需求,對(duì)獲取的內(nèi)核片緩存信息進(jìn)行處理,然后使用QT中數(shù)據(jù)庫(kù)相關(guān)的類(lèi),建立數(shù)據(jù)庫(kù)文件、連接數(shù)據(jù)庫(kù),將處理后的信息存入數(shù)據(jù)庫(kù); 3 )連接并打開(kāi)數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并存入對(duì)應(yīng)數(shù)組,作為QWT繪圖的數(shù)據(jù)源; 4)使用QWT繪制實(shí)時(shí)動(dòng)態(tài)曲線,實(shí)現(xiàn)內(nèi)核片緩存信息的可視化處理。3.根據(jù)權(quán)利要求2所述的一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,其特征在于,所述繪制實(shí)時(shí)動(dòng)態(tài)曲線過(guò)程如下: 1)使用QwtPlot繪制坐標(biāo)軸,設(shè)置實(shí)時(shí)動(dòng)態(tài)曲線的X軸、Y軸; 2)獲取數(shù)據(jù)并使用QwtPlotCurve繪制相關(guān)的實(shí)時(shí)動(dòng)態(tài)曲線。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種Linux內(nèi)核片緩存信息可視化的實(shí)現(xiàn)方法,所述方法首先使用Linux命令獲取內(nèi)核片緩存的信息,并將相關(guān)數(shù)據(jù)處理后存儲(chǔ)到數(shù)據(jù)庫(kù)中,之后從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并進(jìn)行可視化處理,使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn)。本發(fā)明通過(guò)使用QT編程工具實(shí)現(xiàn)內(nèi)核片緩存信息的實(shí)時(shí)動(dòng)態(tài)曲線展現(xiàn),用戶(hù)可以通過(guò)分析內(nèi)核片緩存的實(shí)時(shí)動(dòng)態(tài)曲線了解系統(tǒng)的運(yùn)行狀況、分析資源的使用情況等。
【IPC分類(lèi)】G06F11/32
【公開(kāi)號(hào)】CN105487962
【申請(qǐng)?zhí)枴緾N201510839610
【發(fā)明人】柳玉巧, 吳登勇, 陳亮甫
【申請(qǐng)人】山東超越數(shù)控電子有限公司
【公開(kāi)日】2016年4月13日
【申請(qǐng)日】2015年11月27日