本發(fā)明涉及計算機應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種基于Torque的集群記賬管理方法及系統(tǒng)。
背景技術(shù):
高性能計算(High performance computing,縮寫HPC)是計算機科學(xué)的一個分支,通過研究體系結(jié)構(gòu)、并行算法和應(yīng)用軟件等方面開發(fā)高性能計算機。其誕生之初一直為量子物理、氣候研究、海洋研究、石油勘探等領(lǐng)域的科學(xué)與工程計算提供計算支持。隨著高性能計算技術(shù)的快速發(fā)展,高性能計算已經(jīng)逐漸擴展到電商、金融、信息等高新產(chǎn)業(yè)和服務(wù)業(yè),并為傳統(tǒng)的工業(yè)和制造業(yè)提供場景模擬、模型優(yōu)化等計算支持。
Torque是一個開源的PBS作業(yè)調(diào)度應(yīng)用軟件,被廣泛應(yīng)用于高性能服務(wù)集群中實現(xiàn)作業(yè)的調(diào)度管理,Torque中的記賬功能可以記錄每一個作業(yè)的運行狀態(tài)、開始結(jié)束時間、使用資源如CPU核數(shù)、內(nèi)存、節(jié)點數(shù)等信息。但是這些信息是以作業(yè)為單位以日期為文件名記錄在文件中,并不能直觀的按用戶進行統(tǒng)計。
此外,隨著目前云計算和大數(shù)據(jù)需求的不斷增長,高性能計算集群作為一種計算資源也可以由供應(yīng)商作為服務(wù)被租用或商用,因此提供一種基于Torque的集群記賬管理方法及系統(tǒng)是非常有必要的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于Torque的集群記賬管理方法及系統(tǒng),目的在于利用Torque調(diào)度器提供的作業(yè)運行信息,實現(xiàn)對用戶資源統(tǒng)計、賬單統(tǒng)計以及繳費管理的功能。
為解決上述技術(shù)問題,本發(fā)明提供一種基于Torque的集群記賬管理方法,包括:
獲取用戶的記賬配置信息;
通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);
根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計;
接收所述用戶根據(jù)所述賬單進行繳費的指令,實現(xiàn)用戶繳費。
可選地,所述通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù)包括:
根據(jù)日期參數(shù)掃描Torque中的作業(yè)記錄文件,提取用戶在運行時的所述作業(yè)資源使用數(shù)據(jù)。
可選地,所述記賬配置信息包括用戶配置表以及配置信息表;
其中,所述用戶配置表中包含用戶名以及對應(yīng)配置信息表ID;所述配置信息表中包含標(biāo)識ID、用戶名、創(chuàng)建時間、CPU時間單價、機時單價以及內(nèi)存單價信息。
可選地,所述通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù)包括:
創(chuàng)建定時任務(wù),每日提取并解析前一天的作業(yè)記錄信息。
可選地,所述對所述用戶的賬單進行統(tǒng)計包括:
通過用戶賬單明細表對所述賬單進行統(tǒng)計;
所述用戶賬單明細表包括:作業(yè)ID、用戶、用戶組、配置信息表ID、CPU時間、作業(yè)機時以及作業(yè)內(nèi)存信息。
可選地,所述根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計包括:
當(dāng)統(tǒng)計時間不包含當(dāng)天的賬單時,直接關(guān)聯(lián)賬單明細表以及配置信息表查詢用戶或用戶組的資源使用情況以及記賬配置信息,計算賬單結(jié)果;當(dāng)查詢時間包含當(dāng)天的賬單時,提取當(dāng)天的Torque作業(yè)記錄文件,對所述賬單明細表中不存在的作業(yè)信息進行記錄,根據(jù)統(tǒng)計時間關(guān)聯(lián)所述賬單明細表以及所述配置信息表,并進行統(tǒng)計。
可選地,在所述接收所述用戶根據(jù)所述賬單進行繳費的指令之后還包括:
通過用戶繳費表對所述用戶每次的繳費信息進行記錄;
所述用戶繳費表包含用戶名、繳費時間以及繳費金額信息。
可選地,在所述接收所述用戶根據(jù)所述賬單進行繳費的指令之后還包括:
對所述用戶的累計繳費金額進行統(tǒng)計,確定當(dāng)前用戶的賬戶余額信息。
可選地,還包括:
接收用戶對繳費信息以及賬戶余額信息進行查詢的指令,向所述用戶顯示所述繳費信息以及所述賬戶余額信息。
本發(fā)明還提供了一種基于Torque的集群記賬管理系統(tǒng),包括:
獲取模塊,用于獲取用戶的記賬配置信息;
提取模塊,用于通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);
統(tǒng)計模塊,用于根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計;
繳費模塊,用于接收所述用戶根據(jù)所述賬單進行繳費的指令,實現(xiàn)用戶繳費。
本發(fā)明所提供的基于Torque的集群記賬管理方法及系統(tǒng),獲取用戶的記賬配置信息;通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);根據(jù)記賬配置信息以及作業(yè)資源使用數(shù)據(jù),對用戶的賬單進行統(tǒng)計;接收用戶根據(jù)賬單進行繳費的指令,實現(xiàn)用戶繳費。本發(fā)明所提供的基于Torque的集群記賬管理方法及系統(tǒng),可用于使用PBS Torque作為作業(yè)調(diào)度軟件的HPC集群,對不同用戶可區(qū)分資源使用單價并可及時調(diào)整維護,同時可以統(tǒng)計并直觀的展示查詢時間內(nèi)用戶的資源使用情況、賬戶情況,還可以支持用戶繳費功能,實現(xiàn)了集群記賬管理的功能。
附圖說明
為了更清楚的說明本發(fā)明實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明所提供的基于Torque的集群記賬管理方法的一種具體實施方式的流程圖;
圖2為本發(fā)明所提供的基于Torque的集群記賬管理方法的另一種具體實施方式的示意圖;
圖3為本發(fā)明實施例提供的基于Torque的集群記賬管理系統(tǒng)的結(jié)構(gòu)框圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明所提供的基于Torque的集群記賬管理方法的一種具體實施方式的流程圖如圖1所示,該方法包括:
步驟S101:獲取用戶的記賬配置信息;
步驟S102:通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);
步驟S103:根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計;
步驟S104:接收所述用戶根據(jù)所述賬單進行繳費的指令,實現(xiàn)用戶繳費。
本發(fā)明所提供的基于Torque的集群記賬管理方法,獲取用戶的記賬配置信息;通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);根據(jù)記賬配置信息以及作業(yè)資源使用數(shù)據(jù),對用戶的賬單進行統(tǒng)計;接收用戶根據(jù)賬單進行繳費的指令,實現(xiàn)用戶繳費。本發(fā)明所提供的基于Torque的集群記賬管理方法,可用于使用PBS Torque作為作業(yè)調(diào)度軟件的HPC集群,對不同用戶可區(qū)分資源使用單價并可及時調(diào)整維護,同時可以統(tǒng)計并直觀的展示查詢時間內(nèi)用戶的資源使用情況、賬戶情況,還可以支持用戶繳費功能,實現(xiàn)了集群記賬管理的功能。
需要指出的是,本申請在實施前可以創(chuàng)建記賬配置模塊,對記賬配置信息進行維護并記錄。記賬配置模塊可以根據(jù)不同用戶與資源分類維護不同的記賬配置信息,資源分類包括CPU時間、機時、內(nèi)存等信息。
在上述實施例的基礎(chǔ)上,本發(fā)明所提供的基于Torque的集群記賬管理方法中通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù)的過程可以具體為:
根據(jù)日期參數(shù)掃描Torque中的作業(yè)記錄文件,提取用戶在運行時的所述作業(yè)資源使用數(shù)據(jù)。
作為一種具體實施方式,記賬配置信息可以包括用戶配置表User以及配置信息表(Cfg表);
其中,所述用戶配置表User中關(guān)聯(lián)用戶最新的配置信息,表結(jié)構(gòu)中包含用戶名以及對應(yīng)配置信息表cfgID;所述配置信息表表結(jié)構(gòu)中包含唯一標(biāo)識ID、用戶名、創(chuàng)建時間、CPU時間單價、機時單價以及內(nèi)存單價信息。需要指出的是,如有其他需要進行記賬管理的資源均可設(shè)定資源單價。Cfg表存儲記賬配置的維護記錄,每一次記賬配置管理操作都會對該表進行插入操作。
創(chuàng)建用戶繳費表Charge,記錄用戶繳費信息,表結(jié)構(gòu)包含用戶名、繳費時間、繳費金額。
創(chuàng)建用戶賬單明細表Acct_Detail,通過用戶賬單明細表記錄作業(yè)賬單信息,表結(jié)構(gòu)包含作業(yè)ID、用戶、用戶組、cfgID、CPU時間、作業(yè)機時、作業(yè)內(nèi)存。
記賬配置模塊對每一次記賬配置操作記錄Cfg表,同時將提取torque中當(dāng)天的作業(yè)記錄信息,將相關(guān)的作業(yè)資源記錄到Acct_Detail表中并更新記錄的cfgID字段,最后更新User表中用戶的cfgID字段。
定義掃描事件,根據(jù)輸入的日期參數(shù)掃描Torque中的作業(yè)記錄文件,分析提取作業(yè)資源使用記錄,對不存在于Acct_Detail表中的作業(yè)記錄,獲取作業(yè)的歸屬用戶以及用戶的記賬配置ID(在User表中),然后將上述信息記錄到Acct_Detail表中。
本實施例中通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù)的過程可以具體為:
創(chuàng)建定時任務(wù),每日提取并解析前一天的作業(yè)記錄信息。對作業(yè)ID不存在于Acct_Detail表中的作業(yè)信息(作業(yè)ID、以及作業(yè)資源使用情況)、用戶、用戶當(dāng)前配置ID記錄到Acct_Detail表中。
按資源類型為用戶進行記賬配置,對每一次的維護操作,首先執(zhí)行上述掃描事件;然后在cfg表中生成新的用戶配置信息,最后更新User表中用戶的配置ID。
具體地,根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計的過程可以為:
當(dāng)統(tǒng)計時間不包含當(dāng)天的賬單時,直接關(guān)聯(lián)賬單明細表(Acct_Detail表)以及配置信息表(Cfg表)查詢用戶或用戶組的資源使用情況以及記賬配置信息,計算賬單結(jié)果;當(dāng)查詢時間包含當(dāng)天的賬單時,提取當(dāng)天的Torque作業(yè)記錄文件,對賬單明細表(Acct_Detail表)中不存在的作業(yè)信息進行記錄,根據(jù)統(tǒng)計時間關(guān)聯(lián)賬單明細表(Acct_Detail表)以及配置信息表(Cfg表),并進行統(tǒng)計。
在上述任一實施例的基礎(chǔ)上,本發(fā)明所提供的方法在所述接收所述用戶根據(jù)所述賬單進行繳費的指令之后還可以進一步包括:
通過用戶繳費表對所述用戶每次的繳費信息進行記錄;
所述用戶繳費表包含用戶名、繳費時間以及繳費金額信息。
優(yōu)選地,還可以進一步包括:
對所述用戶的累計繳費金額進行統(tǒng)計,確定當(dāng)前用戶的賬戶余額信息。
當(dāng)用戶需要對繳費信息以及賬戶余額信息進行查詢時,本發(fā)明還可以進一步包括:
接收用戶對繳費信息以及賬戶余額信息進行查詢的指令,向用戶顯示所述繳費信息以及所述賬戶余額信息。
對每一次用戶繳費記錄Charge表,在獲取用戶賬戶信息時首先根據(jù)計算出用戶的累計費用,然后通過Charge表獲取用戶累計繳費金額,最后計算出當(dāng)前用戶賬戶余額信息。
參照圖2本發(fā)明所提供的基于Torque的集群記賬管理方法的另一種具體實施方式的示意圖,下面對本發(fā)明的具體實施步驟進行詳細描述。
步驟S201:定義底層的掃描程序ScanAccts.c,輸入為Torque的作業(yè)記錄文件$TORQUEROOT/server_priv/accounting/<TIMESTAMP>,其中“<TIMESTAMP>”為記錄日期,如“20160621”文件記錄的是2016-06-21當(dāng)天的作業(yè)信息。
掃描方法根據(jù)輸入的文件名進行文件掃描,對文件中記錄的作業(yè)信息,如果非已完成(狀態(tài)為“E”)的作業(yè)則跳過,對掃描記錄根據(jù)已定義好的字段作為前綴解析記錄獲取作業(yè)信息,最后將解析結(jié)果進行返回。
步驟S202:定義JAVA端掃描類ScanHelper,scanAccts方法負責(zé)調(diào)用底層c代碼進行作業(yè)掃描,遍歷掃描返回的結(jié)果并判斷Acct_Detail表中是否存在,如果不存在,則通過User表獲取用戶當(dāng)前的記賬配置,組裝信息插入Acct_Detail表中;
步驟S203:通過Quartz組件創(chuàng)建定時任務(wù)ScanJob,該任務(wù)獲取當(dāng)前日期并調(diào)用ScanHelper類中的scanAccts方法對作業(yè)信息進行入庫操作。
步驟S204:定義記賬配置類UserCfg,包含用戶配置獲取和配置更新兩個方法,其中配置獲取同步驟S202中類似,以下主要說明配置更新的操作。
步驟S205:定義用戶繳費類Charge,包含用戶繳費方法,即將用戶繳費金額、繳費時間記錄到Charge表中,具體方法不再贅述。
步驟S206:定義賬單統(tǒng)計類AcctBill,包含用戶賬單查詢和用戶賬戶查詢。
其中,對用戶賬單查詢,對查詢時間包含當(dāng)天的情況,可參考步驟S204中首先同步一下作業(yè)信息到Acct_detail庫,然后關(guān)聯(lián)Acc_detail和Cfg表,對返回結(jié)果按用戶或用戶組進行統(tǒng)計計算。用戶賬戶查詢,首先執(zhí)行截止時間為當(dāng)前的用戶賬單查詢,然后通過對Charge表按用戶進行分組操作匯總用戶累計繳費信息,最后根據(jù)用戶費用和累計繳費信息計算用戶余額。
通過步驟S201-步驟S203,可以實現(xiàn)在現(xiàn)有Torque的作業(yè)信息中抽取并展示用戶或用戶組的資源使用情況,步驟S204-步驟S206則實現(xiàn)對應(yīng)的記賬配置、繳費以及用戶賬戶管理功能。在本申請中數(shù)據(jù)模型采用了數(shù)據(jù)表進行實現(xiàn),對一些小規(guī)模用戶的環(huán)境,也可以直接采用XML文件或者JSON文件進行數(shù)據(jù)存儲。
本申請實施例首先針對不同的集群用戶和資源類別進行不同的記賬配置,然后根據(jù)Torque的記賬功能統(tǒng)計出不同用戶在運行作業(yè)時的資源使用情況,并根據(jù)配置信息計算出用戶資源賬單,為用戶繳費和賬單統(tǒng)計功能提供輸入數(shù)據(jù)。
該方法可用于使用PBS Torque作為作業(yè)調(diào)度軟件的HPC集群,對不同用戶可區(qū)分資源使用單價并可及時調(diào)整維護,同時可以統(tǒng)計并直觀的展示查詢時間內(nèi)用戶的資源使用情況、賬戶情況,該發(fā)明也支持用戶繳費功能以及用戶繳費記錄的查詢。
本發(fā)明實施例結(jié)構(gòu)清晰,實現(xiàn)方便,針對現(xiàn)有Torque作業(yè)調(diào)度器不能直接從用戶角度查看資源使用的問題進行了處理,并進一步提出了相關(guān)的記賬配置、繳費以及用戶賬戶管理的方案,從而實現(xiàn)了集群記賬管理的功能。
下面對本發(fā)明實施例提供的基于Torque的集群記賬管理系統(tǒng)進行介紹,下文描述的基于Torque的集群記賬管理系統(tǒng)與上文描述的基于Torque的集群記賬管理方法可相互對應(yīng)參照。
圖3為本發(fā)明實施例提供的基于Torque的集群記賬管理系統(tǒng)的結(jié)構(gòu)框圖,參照圖3基于Torque的集群記賬管理系統(tǒng)可以包括:
獲取模塊100,用于獲取用戶的記賬配置信息;
提取模塊200,用于通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);
統(tǒng)計模塊300,用于根據(jù)所述記賬配置信息以及所述作業(yè)資源使用數(shù)據(jù),對所述用戶的賬單進行統(tǒng)計;
繳費模塊400,用于接收所述用戶根據(jù)所述賬單進行繳費的指令,實現(xiàn)用戶繳費。
本發(fā)明所提供的基于Torque的集群記賬管理系統(tǒng),獲取用戶的記賬配置信息;通過解析Torque的作業(yè)記錄信息,提取用戶在運行時的作業(yè)資源使用數(shù)據(jù);根據(jù)記賬配置信息以及作業(yè)資源使用數(shù)據(jù),對用戶的賬單進行統(tǒng)計;接收用戶根據(jù)賬單進行繳費的指令,實現(xiàn)用戶繳費。本發(fā)明所提供的基于Torque的集群記賬管理系統(tǒng),可用于使用PBS Torque作為作業(yè)調(diào)度軟件的HPC集群,對不同用戶可區(qū)分資源使用單價并可及時調(diào)整維護,同時可以統(tǒng)計并直觀的展示查詢時間內(nèi)用戶的資源使用情況、賬戶情況,還可以支持用戶繳費功能,實現(xiàn)了集群記賬管理的功能。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的基于Torque的集群記賬管理方法及系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。