本發(fā)明涉及內(nèi)存分配領(lǐng)域,特別涉及一種內(nèi)存分配方法和裝置。
背景技術(shù):
在存儲(chǔ)系統(tǒng)啟動(dòng)過(guò)程中,各個(gè)系統(tǒng)成員需要初始化,在這個(gè)過(guò)程中,存儲(chǔ)系統(tǒng)會(huì)為系統(tǒng)成員分配內(nèi)存,以便于后期系統(tǒng)對(duì)其進(jìn)行訪問(wèn)操作。如果有多種存儲(chǔ)硬件平臺(tái),那么存儲(chǔ)系統(tǒng)需要為每個(gè)硬件平臺(tái)分配內(nèi)存,而每個(gè)硬件平臺(tái)所需要的內(nèi)存可能各不相同,例如不同的存儲(chǔ)硬件平臺(tái)能夠插入不同的hba卡數(shù)量,從而導(dǎo)致在hba卡初始化過(guò)程中所需要的內(nèi)存會(huì)因硬件平臺(tái)的不同而不同。
而在存儲(chǔ)系統(tǒng)初始化過(guò)程之前,需要為每一個(gè)系統(tǒng)成員預(yù)留一定的內(nèi)存用于此成員初始化過(guò)程,一旦預(yù)留成功,那么這個(gè)成員的初始化所需內(nèi)存必須在預(yù)留內(nèi)存范圍內(nèi),這樣可以保證避免某一個(gè)成員無(wú)限制的預(yù)留內(nèi)存的情況。
現(xiàn)有技術(shù)中的內(nèi)存分配方法是,在一套軟件架構(gòu)中,預(yù)留一個(gè)公共的memreq(memoryrequire)配置值用于配置所有系統(tǒng)成員在初始化的時(shí)候需要的內(nèi)存數(shù)量。由于所有的硬件平臺(tái)都會(huì)分享這一公共的memreq的值,那么這個(gè)memreq的值必須以系統(tǒng)成員所需要的最大內(nèi)存的數(shù)量作為memreq的值。比如存儲(chǔ)系統(tǒng)有三個(gè)硬件平臺(tái)共享這個(gè)memreq的值,第一個(gè)硬件平臺(tái)需要memreq的值為10,第二個(gè)硬件平臺(tái)需要的memreq的值為20,第三個(gè)硬件平臺(tái)需要的memreq的值為30,那么這個(gè)存儲(chǔ)系統(tǒng)的公共的memreq的值需要取三個(gè)平臺(tái)中的最大值30。
然而,在用上述方法為系統(tǒng)成員初始化分配內(nèi)存時(shí),會(huì)出現(xiàn)為所需memreq值較小的硬件平臺(tái)預(yù)留了較多內(nèi)存的情況,相應(yīng)的,會(huì)有較少的內(nèi)存用于系統(tǒng)cache,這導(dǎo)致系統(tǒng)存儲(chǔ)性能差。
綜上所述,存儲(chǔ)系統(tǒng)如何為每個(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量是本領(lǐng)域技術(shù)人員目前需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種內(nèi)存分配方法,其能夠?yàn)槊總€(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量。本發(fā)明還提供了一種內(nèi)存分配裝置。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種內(nèi)存分配方法,包括:
獲取預(yù)先基于存儲(chǔ)系統(tǒng)中每個(gè)系統(tǒng)成員的軟件架構(gòu)為其設(shè)置的第一內(nèi)存數(shù)量,其中每個(gè)所述系統(tǒng)成員的軟件架構(gòu)相同;
采集每個(gè)所述系統(tǒng)成員的硬件信息,并基于所述硬件信息計(jì)算出每個(gè)所述系統(tǒng)成員的第二內(nèi)存數(shù)量;
將每個(gè)所述系統(tǒng)成員的第一內(nèi)存數(shù)量和該系統(tǒng)成員的第二內(nèi)存數(shù)量相加,得到需要分別分配給每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量。
優(yōu)選的,所述采集每個(gè)所述系統(tǒng)成員的硬件信息,包括:
采集每個(gè)所述系統(tǒng)成員自身的硬件信息和外接設(shè)備的硬件信息。
優(yōu)選的,所述基于所述硬件信息計(jì)算出每個(gè)所述系統(tǒng)成員的第二內(nèi)存數(shù)量,包括:
基于每個(gè)所述系統(tǒng)成員自身ram的大小計(jì)算自身硬件信息對(duì)應(yīng)的第一內(nèi)存值;基于每個(gè)系統(tǒng)成員外接設(shè)備的類型和數(shù)量計(jì)算外接設(shè)備硬件信息對(duì)應(yīng)的第二內(nèi)存值;將每個(gè)所述系統(tǒng)成員的第一內(nèi)存值和該系統(tǒng)成員的第二內(nèi)存值相加,得到每個(gè)所述系統(tǒng)成員的第二內(nèi)存數(shù)量。
優(yōu)選的,在得到需要分別分配給每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量之后還包括:
判斷每個(gè)所述系統(tǒng)成員的所述內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存數(shù)量,若大于則報(bào)錯(cuò)。
優(yōu)選的,在得到需要分別分配給每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量之后還包括:
存儲(chǔ)每個(gè)所述系統(tǒng)成員的所述內(nèi)存總數(shù)量。
本發(fā)明還提供一種內(nèi)存分配裝置,包括:
獲取模塊,用于獲取預(yù)先基于存儲(chǔ)系統(tǒng)中每個(gè)系統(tǒng)成員的軟件架構(gòu)為其設(shè)置的第一內(nèi)存數(shù)量;
采集模塊,用于采集每個(gè)所述系統(tǒng)成員的硬件信息;
計(jì)算模塊,用于基于所述硬件信息計(jì)算出每個(gè)所述系統(tǒng)成員的第二內(nèi)存數(shù)量;將每個(gè)所述系統(tǒng)成員的第一內(nèi)存數(shù)量和該系統(tǒng)成員的第二內(nèi)存數(shù)量相加,得到需要分別分配給每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量。
優(yōu)選的,所述采集模塊包括:
采集單元,用于采集每個(gè)所述系統(tǒng)成員自身的硬件信息和外接設(shè)備的硬件信息。
優(yōu)選的,所述計(jì)算模塊包括:
計(jì)算單元,用于基于每個(gè)所述系統(tǒng)成員自身ram的大小計(jì)算自身硬件信息對(duì)應(yīng)的第一內(nèi)存值;基于每個(gè)所述系統(tǒng)成員外接設(shè)備的類型和數(shù)量計(jì)算外接設(shè)備硬件信息對(duì)應(yīng)的第二內(nèi)存值;將每個(gè)所述系統(tǒng)成員的第一內(nèi)存值和該系統(tǒng)成員的第二內(nèi)存值相加,得到每個(gè)所述系統(tǒng)成員的第二內(nèi)存數(shù)量。
優(yōu)選的,還包括:
判斷模塊,用于在計(jì)算模塊得到每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量之后,判斷每個(gè)所述系統(tǒng)成員的所述內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存數(shù)量,若大于則報(bào)錯(cuò)。
優(yōu)選的,還包括:
存儲(chǔ)模塊,用于在計(jì)算模塊得到每個(gè)所述系統(tǒng)成員的內(nèi)存總數(shù)量之后,存儲(chǔ)每個(gè)所述系統(tǒng)成員的所述內(nèi)存總數(shù)量。
本發(fā)明所提供的內(nèi)存分配方法將存儲(chǔ)系統(tǒng)中每個(gè)系統(tǒng)成員需要的內(nèi)存總數(shù)量分為兩部分,第一部分是每個(gè)系統(tǒng)成員統(tǒng)一的軟件架構(gòu)對(duì)應(yīng)的第一內(nèi)存數(shù)量,第二部分是基于每個(gè)系統(tǒng)成員的硬件信息計(jì)算出的該系統(tǒng)成員的第二內(nèi)存數(shù)量;將每個(gè)系統(tǒng)成員對(duì)應(yīng)的第一內(nèi)存數(shù)量和該系統(tǒng)成員的第二內(nèi)存數(shù)量相加,得到需要分別分配給每個(gè)系統(tǒng)成員各自的內(nèi)存總數(shù)量。通過(guò)本發(fā)明提供的內(nèi)存分配方法,利用每個(gè)系統(tǒng)成員統(tǒng)一的軟件架構(gòu)和各自的硬件信息,得到每個(gè)系統(tǒng)成員實(shí)際所需要的內(nèi)存總數(shù)量,從而使得存儲(chǔ)系統(tǒng)為每個(gè)系統(tǒng)成員分配的內(nèi)存總數(shù)量基本等于其實(shí)際需要的內(nèi)存總數(shù)量,避免出現(xiàn)現(xiàn)有技術(shù)中每個(gè)系統(tǒng)成員實(shí)際需要的內(nèi)存總數(shù)量跟存儲(chǔ)系統(tǒng)為其分配的內(nèi)存總數(shù)量相差太大的情況。本發(fā)明提供的內(nèi)存分配方法有效解決了存儲(chǔ)系統(tǒng)如何為每個(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量的技術(shù)問(wèn)題。本發(fā)明所提供的一種內(nèi)存分配裝置也相應(yīng)的解決了如何為每個(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量的技術(shù)問(wèn)題。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明一種具體實(shí)施方式所提供內(nèi)存分配方法的流程圖;
圖2為本發(fā)明另一具體實(shí)施方式所提供內(nèi)存分配方法的流程圖;
圖3為本發(fā)明一種具體實(shí)施方式所提供內(nèi)存分配裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明另一具體實(shí)施方式所提供內(nèi)存分配裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種內(nèi)存分配方法,其解決了如何為每個(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量的技術(shù)問(wèn)題。本發(fā)明的另一核心是提供一種內(nèi)存分配裝置。
為了使本技術(shù)領(lǐng)域的人員更好的理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
請(qǐng)參閱圖1,圖1為本發(fā)明一種具體實(shí)施方式所提供內(nèi)存分配方法的流程圖。在對(duì)應(yīng)第一種具體實(shí)施方式中,本發(fā)明實(shí)施例所提供的內(nèi)存分配方法可以包括以下步驟:
步驟s1:獲取預(yù)先基于存儲(chǔ)系統(tǒng)中每個(gè)系統(tǒng)成員的軟件架構(gòu)為其設(shè)置的第一內(nèi)存數(shù)量,其中每個(gè)系統(tǒng)成員的軟件架構(gòu)相同。
由于每個(gè)系統(tǒng)成員的軟件架構(gòu)相同,所以每個(gè)系統(tǒng)成員軟件架構(gòu)對(duì)應(yīng)第一內(nèi)存數(shù)量均相同。每個(gè)系統(tǒng)成員的軟件架構(gòu)及對(duì)應(yīng)第一內(nèi)存數(shù)量可以由工作人員根據(jù)實(shí)際需要預(yù)先進(jìn)行設(shè)定,具體來(lái)說(shuō),第一內(nèi)存數(shù)量可以由具體的軟件模塊的工作人員根據(jù)設(shè)置的軟件架構(gòu)給出:軟件模塊中具體的部分有plfc、pliscsi、plsa、plpa等等,由工作人員確定出每部分所需分配的內(nèi)存值,然后將每部分所需分配的內(nèi)存值進(jìn)行加和可得到軟件模塊所需分配的內(nèi)存值,并確定該內(nèi)存值為系統(tǒng)成員軟件架構(gòu)對(duì)應(yīng)的第一內(nèi)存數(shù)量。比如pliscsi這一部分的預(yù)留內(nèi)存數(shù)量為兩個(gè)內(nèi)存page,也就是8k,工作人員統(tǒng)計(jì)這個(gè)軟件模塊中所有pliscsi對(duì)應(yīng)部分的數(shù)量,將所統(tǒng)計(jì)數(shù)量與8k相乘便得到pliscsi的預(yù)留內(nèi)存數(shù)量,其他部分預(yù)留內(nèi)存的計(jì)算方式與此原理相同;工作人員將軟件模塊中每部分的預(yù)留內(nèi)存數(shù)量相加便得到為軟件架構(gòu)設(shè)置的第一內(nèi)存數(shù)量。
步驟s2:采集每個(gè)系統(tǒng)成員的硬件信息,并基于硬件信息計(jì)算出每個(gè)系統(tǒng)成員的第二內(nèi)存數(shù)量。
步驟s3:將每個(gè)系統(tǒng)成員的第一內(nèi)存數(shù)量和該系統(tǒng)成員的第二內(nèi)存數(shù)量相加,得到需要分別分配給每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量。
在本實(shí)施例中,本發(fā)明利用每個(gè)系統(tǒng)成員自身統(tǒng)一的軟件架構(gòu)和軟件架構(gòu)之外的硬件信息,將每個(gè)系統(tǒng)成員所需要的內(nèi)存總數(shù)量分為:軟件架構(gòu)對(duì)應(yīng)的第一內(nèi)存數(shù)量和硬件部分對(duì)應(yīng)的第二內(nèi)存數(shù)量;將獲取的第一內(nèi)存數(shù)量和計(jì)算得到的第二內(nèi)存數(shù)量相加,便得到每個(gè)系統(tǒng)成員各自需要的內(nèi)存總數(shù)量。本發(fā)明利用每個(gè)系統(tǒng)成員統(tǒng)一的軟件架構(gòu)和各自不同的硬件部分,得到每個(gè)系統(tǒng)成員各自的內(nèi)存總數(shù)量,其基本等于實(shí)際需要的內(nèi)存數(shù)量,避免出現(xiàn)每個(gè)系統(tǒng)成員實(shí)際需要的內(nèi)存總數(shù)量跟理論上為其分配的內(nèi)存總數(shù)量相差太大的情況。本發(fā)明提供的內(nèi)存分配方法解決了存儲(chǔ)系統(tǒng)如何為每個(gè)系統(tǒng)成員分配合理的內(nèi)存數(shù)量的技術(shù)問(wèn)題。
應(yīng)當(dāng)指出,這里并不限制步驟s1和步驟s2這兩個(gè)步驟的先后順序??梢韵葓?zhí)行步驟s1,也可以先執(zhí)行步驟s2,還可以兩個(gè)步驟同時(shí)進(jìn)行。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配方法中,采集每個(gè)系統(tǒng)成員的硬件信息可以包括:采集每個(gè)系統(tǒng)成員自身的硬件信息和其外接設(shè)備的硬件信息。
在采集每個(gè)系統(tǒng)成員的硬件信息時(shí),對(duì)于那些沒(méi)有外接設(shè)備的系統(tǒng)成員,只需要采集系統(tǒng)成員自身的硬件信息即可;而對(duì)于那些有外接設(shè)備的系統(tǒng)成員,不僅要采集系統(tǒng)成員自身的硬件信息,還要采集系統(tǒng)成員外接設(shè)備的硬件信息。這樣使分配給具有外接設(shè)備的系統(tǒng)成員的內(nèi)存總數(shù)量更加準(zhǔn)確。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配方法中,基于硬件信息計(jì)算出每個(gè)系統(tǒng)成員的第二內(nèi)存數(shù)量可以包括:
基于每個(gè)系統(tǒng)成員自身ram的大小計(jì)算自身硬件信息對(duì)應(yīng)的第一內(nèi)存值;基于每個(gè)系統(tǒng)成員外接設(shè)備的類型和數(shù)量計(jì)算外接設(shè)備硬件信息對(duì)應(yīng)的第二內(nèi)存值;將每個(gè)系統(tǒng)成員的第一內(nèi)存值和該系統(tǒng)成員的第二內(nèi)存值相加,得到每個(gè)系統(tǒng)成員的第二內(nèi)存數(shù)量。
因?yàn)橄到y(tǒng)成員自身的硬件信息基本由其ram的大小決定,所以這里重點(diǎn)依據(jù)系統(tǒng)成員自身ram的大小來(lái)計(jì)算其硬件信息對(duì)應(yīng)的第一內(nèi)存值。
在根據(jù)系統(tǒng)成員自身ram的大小來(lái)計(jì)算其相應(yīng)的第一內(nèi)存值時(shí),可以由工作人員根據(jù)實(shí)際需要設(shè)置一個(gè)比例,從而將ram大小與該比例的乘積作為其對(duì)應(yīng)的第一內(nèi)存值。具體來(lái)說(shuō),可以采用下述方法。對(duì)于ram來(lái)說(shuō),8g內(nèi)存ram對(duì)應(yīng)的預(yù)留內(nèi)存為10988個(gè)page,而每個(gè)page是4k,這樣8g內(nèi)存ram對(duì)應(yīng)的預(yù)留內(nèi)存為42.9m,然后根據(jù)這個(gè)對(duì)應(yīng)關(guān)系具體計(jì)算這一部分的值。比如,系統(tǒng)成員自身的ram的大小為4g,由于4g是8g一半,所以4g內(nèi)存ram對(duì)應(yīng)的預(yù)留內(nèi)存為42.9m的一半,即21.45m。當(dāng)然,根據(jù)8g內(nèi)存ram對(duì)應(yīng)42.9m的預(yù)留內(nèi)存的對(duì)應(yīng)關(guān)系,還可以延伸出其他的對(duì)應(yīng)關(guān)系,比如2g內(nèi)存ram對(duì)應(yīng)10.725m的預(yù)留內(nèi)存,應(yīng)用這些對(duì)應(yīng)關(guān)系均能夠計(jì)算出系統(tǒng)成員自身ram對(duì)應(yīng)的第一內(nèi)存值。
在計(jì)算系統(tǒng)成員外接設(shè)備的硬件信息對(duì)應(yīng)的第二內(nèi)存值時(shí),一般先根據(jù)外接設(shè)備的類型,確定每一類每個(gè)外接設(shè)備對(duì)應(yīng)的內(nèi)存值;然后再確定每一類外接設(shè)備的個(gè)數(shù);將同一類的每個(gè)外接設(shè)備的內(nèi)存值與該類的外接設(shè)備的個(gè)數(shù)相乘,得到每一類外接設(shè)備所對(duì)應(yīng)的內(nèi)存值;最后,將不同種類外接設(shè)備對(duì)應(yīng)的內(nèi)存值相加,得到系統(tǒng)成員外接設(shè)備對(duì)應(yīng)的第二內(nèi)存值。這里以計(jì)算外接設(shè)備為外接hba卡的預(yù)留內(nèi)存值為例來(lái)進(jìn)行說(shuō)明。首先,確定系統(tǒng)成員外接hba卡的類型,得知外接hba卡的類型后,便能夠查閱得到這一類每個(gè)hba卡所對(duì)應(yīng)的預(yù)留內(nèi)存值;然后確定每類hba卡的數(shù)量;將每類hba卡所對(duì)應(yīng)的預(yù)留內(nèi)存值乘以每類hba卡的數(shù)量,便得到每類hba卡所對(duì)應(yīng)的預(yù)留內(nèi)存值;最后,將不同類hba卡所對(duì)應(yīng)的預(yù)留內(nèi)存值相加,便得到系統(tǒng)成員外接設(shè)備硬件信息所對(duì)應(yīng)的第二內(nèi)存數(shù)量。其他外接設(shè)備硬件信息對(duì)應(yīng)的第二內(nèi)存值的計(jì)算方法與此原理相同。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配方法中,得到需要分別分配給每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量之后還可以包括:
判斷每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存數(shù)量,如果是,則執(zhí)行報(bào)錯(cuò)操作。
其中,最大內(nèi)存數(shù)量可以為工作人員根據(jù)實(shí)際需要設(shè)定的;在上述判斷操作中,如果每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量不大于預(yù)先設(shè)定的最大內(nèi)存數(shù)量,即如果否,則可以將每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量發(fā)送給該系統(tǒng)成員,當(dāng)然,也可以進(jìn)行其他操作,比如存儲(chǔ)內(nèi)存總數(shù)量等等。另外報(bào)錯(cuò)操作具體可以是向與工作人員對(duì)應(yīng)的指定終端發(fā)送對(duì)應(yīng)的信息,也可以是指示顯示屏對(duì)對(duì)應(yīng)信息進(jìn)行顯示等,而上述報(bào)錯(cuò)操作對(duì)應(yīng)的信息可以包括內(nèi)存總數(shù)量大于最大內(nèi)存數(shù)量的系統(tǒng)成員的編號(hào)及其內(nèi)存總數(shù)量等,當(dāng)然上述技術(shù)方案均可以根據(jù)實(shí)際需要進(jìn)行其他設(shè)定,均在本發(fā)明的保護(hù)范圍之內(nèi)。
增加上述判斷操作的好處是,能夠避免系統(tǒng)成員所需的內(nèi)存總數(shù)量大于預(yù)先根據(jù)實(shí)際需要設(shè)定的最大內(nèi)存數(shù)量,可以解決為一個(gè)系統(tǒng)成員無(wú)限制的分配內(nèi)存等不合法的問(wèn)題。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配方法中,得到需要分別分配給每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量之后還可以包括:
存儲(chǔ)每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量。
增加上述存儲(chǔ)操作的好處是,在需要重復(fù)得知系統(tǒng)成員所需內(nèi)存總數(shù)量的時(shí)候,可以直接由存儲(chǔ)的數(shù)據(jù)中獲取,從而節(jié)約計(jì)算內(nèi)存總數(shù)量的過(guò)程。
在實(shí)際應(yīng)用中,可以增加上述判斷操作或者存儲(chǔ)操作中的任意一個(gè)操作;也可以兩個(gè)操作均增加,在這里并不限制增加兩種操作的順序,優(yōu)選的增加順序如下實(shí)施例所述。
請(qǐng)參閱圖2,圖2為本發(fā)明另一具體實(shí)施方式所提供內(nèi)存分配方法的流程圖。在這一具體實(shí)施方式中,增加了判斷操作和存儲(chǔ)操作,并將兩者結(jié)合起來(lái):在得到每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量后,先執(zhí)行步驟s4:判斷每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存值,若果是,則執(zhí)行步驟s6:報(bào)錯(cuò);若果否,則執(zhí)行步驟s5:存儲(chǔ)每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量。這一實(shí)施例不僅能為系統(tǒng)成員分配合理的內(nèi)存總數(shù)量;而且能夠避免無(wú)限制為系統(tǒng)成員分配內(nèi)存數(shù)量的情況;還能夠在需要重復(fù)得知系統(tǒng)成員所需內(nèi)存數(shù)量的情況下,節(jié)省計(jì)算過(guò)程。
本發(fā)明還提供了一種內(nèi)存分配裝置,其具有本發(fā)明方法具有的所有有益效果。請(qǐng)參閱圖3,圖3為本發(fā)明一種具體實(shí)施方式所提供內(nèi)存分配裝置的結(jié)構(gòu)示意圖,可以包括以下模塊:
獲取模塊a1,用于獲取預(yù)先基于存儲(chǔ)系統(tǒng)中每個(gè)系統(tǒng)成員的軟件架構(gòu)為其設(shè)置的第一內(nèi)存數(shù)量。
采集模塊a2,用于采集每個(gè)系統(tǒng)成員的硬件信息。
計(jì)算模塊a3,用于基于采集模塊a2采集的硬件信息計(jì)算出每個(gè)系統(tǒng)成員的第二內(nèi)存數(shù)量;將每個(gè)系統(tǒng)成員的第一內(nèi)存數(shù)量和該系統(tǒng)成員的第二內(nèi)存數(shù)量相加,得到需要分別分配給每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配裝置中,采集模塊可以包括:
采集單元,用于采集每個(gè)系統(tǒng)成員自身的硬件信息和外接設(shè)備的硬件信息。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配裝置中,計(jì)算模塊可以包括:
計(jì)算單元,用于基于每個(gè)系統(tǒng)成員自身ram的大小計(jì)算自身硬件信息對(duì)應(yīng)的第一內(nèi)存值;基于每個(gè)系統(tǒng)成員外接設(shè)備的類型和數(shù)量計(jì)算其外接設(shè)備硬件信息對(duì)應(yīng)的第二內(nèi)存值;將每個(gè)系統(tǒng)成員的第一內(nèi)存值和該系統(tǒng)成員的第二內(nèi)存值相加,得到每個(gè)系統(tǒng)成員的第二內(nèi)存數(shù)量。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配裝置中,還可以包括:
判斷模塊,用于在計(jì)算模塊得到內(nèi)存總數(shù)量后,判斷每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存數(shù)量,若大于則報(bào)錯(cuò)。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配裝置中,還可以包括:
存儲(chǔ)模塊,用于在計(jì)算模塊得到內(nèi)存總數(shù)量后,存儲(chǔ)每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量。
在實(shí)際的裝置應(yīng)用中,可以增加上述判斷模塊或者存儲(chǔ)模塊中的任意一個(gè)模塊;也可以兩個(gè)模塊均增加,這里并不限制增加兩個(gè)模塊的順序,優(yōu)選的增加順序如下所述:
請(qǐng)參閱圖4,圖4為本發(fā)明另一具體實(shí)施方式的結(jié)構(gòu)示意圖。在這一具體實(shí)施方式中,增加了判斷模塊a4、存儲(chǔ)模塊a5,并將兩者結(jié)合起來(lái):在計(jì)算模塊得到內(nèi)存總數(shù)量后,判斷模塊先判斷每個(gè)系統(tǒng)成員的內(nèi)存總數(shù)量是否大于預(yù)先設(shè)定的最大內(nèi)存值,如果是,則報(bào)錯(cuò);如果否,則將內(nèi)存總數(shù)量發(fā)送給存儲(chǔ)模塊,存儲(chǔ)模塊將內(nèi)存總數(shù)量進(jìn)行存儲(chǔ)。
本發(fā)明實(shí)施例提供的一種內(nèi)存分配裝置中相關(guān)部分的說(shuō)明請(qǐng)參見本發(fā)明實(shí)施例提供的一種內(nèi)存分配方法中對(duì)應(yīng)部分的詳細(xì)說(shuō)明,在此不再贅述。
本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。