一種基于rhel7.0的內(nèi)存測試方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種基于RHEL7.0的內(nèi)存測試方法及裝置。
【背景技術(shù)】
[0002]內(nèi)存是計(jì)算機(jī)最重要的部件之一,計(jì)算機(jī)中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的。鑒于內(nèi)存的重要性,計(jì)算機(jī)運(yùn)行過程中必須要保證內(nèi)存可靠,因此內(nèi)存測試是必不可少的。
[0003]傳統(tǒng)的對內(nèi)存測試的方式可以包括:通過對內(nèi)存進(jìn)行讀寫操作,以測試內(nèi)存的讀寫性能,以及測試內(nèi)存的1吞吐量。然而,計(jì)算機(jī)在工作時(shí),需要進(jìn)行內(nèi)存刷新,以維持內(nèi)存中所存儲(chǔ)的數(shù)據(jù),而內(nèi)存刷新占用了內(nèi)存較大的性能去實(shí)現(xiàn),因此,對內(nèi)存的測試性能造成影響。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種基于RHEL7.0的內(nèi)存測試方法及裝置,以提高內(nèi)存的測試性能。
[0005]本發(fā)明提供了一種基于RHEL7.0的內(nèi)存測試方法,包括:
[0006]獲取內(nèi)存測試指令;
[0007]向/proc虛擬文件系統(tǒng)發(fā)送第一echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新;
[0008]根據(jù)所述內(nèi)存測試指令,對內(nèi)存性能進(jìn)行測試。
[0009]優(yōu)選地,所述向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新,包括:
[0010]向/proc虛擬文件系統(tǒng)發(fā)送第一echo指令,所述第一 echo指令攜帶參數(shù)3,以使/proc虛擬文件系統(tǒng)將所述第一 echo指令所攜帶的參數(shù)3導(dǎo)入到drop_caches文件中,以鎖定內(nèi)存刷新。
[0011]優(yōu)選地,在所述向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新之前,進(jìn)一步包括:
[0012]向/proc虛擬文件系統(tǒng)發(fā)送第二 echo指令,以使/proc虛擬文件系統(tǒng)清除內(nèi)存中的緩存。
[0013]優(yōu)選地,所述向/proc虛擬文件系統(tǒng)發(fā)送第二 echo指令,以使/proc虛擬文件系統(tǒng)清除內(nèi)存中的緩存,包括:
[0014]向/proc虛擬文件系統(tǒng)發(fā)送第二echo指令,所述第二 echo指令攜帶參數(shù)1,以使/proc虛擬文件系統(tǒng)將參數(shù)I導(dǎo)入到drop_caches文件中,以清除內(nèi)存中的緩存。
[0015]優(yōu)選地,在所述對內(nèi)存性能進(jìn)行測試之后,進(jìn)一步包括:
[0016]對內(nèi)存所在的服務(wù)器進(jìn)行重啟,以對內(nèi)存恢復(fù)內(nèi)存刷新。
[0017]本發(fā)明還提供了一種基于RHEL7.0的內(nèi)存測試裝置,包括:
[0018]獲取單元,用于獲取內(nèi)存測試指令;
[0019]發(fā)送單元,用于向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新;
[0020]測試單元,用于根據(jù)所述內(nèi)存測試指令,對內(nèi)存性能進(jìn)行測試。
[0021]優(yōu)選地,所述發(fā)送單元,用于向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,所述第一echo指令攜帶參數(shù)3,以使/proc虛擬文件系統(tǒng)將所述第一 echo指令所攜帶的參數(shù)3導(dǎo)入到drop_caches文件中,以鎖定內(nèi)存刷新。
[0022]優(yōu)選地,所述發(fā)送單元,用于向/proc虛擬文件系統(tǒng)發(fā)送第二 echo指令,以使/proc虛擬文件系統(tǒng)清除內(nèi)存中的緩存。
[0023]優(yōu)選地,所述發(fā)送單元,用于向/proc虛擬文件系統(tǒng)發(fā)送第二 echo指令,所述第二echo指令攜帶參數(shù)1,以使/proc虛擬文件系統(tǒng)將參數(shù)I導(dǎo)入到drop_caches文件中,以清除內(nèi)存中的緩存。
[0024]優(yōu)選地,進(jìn)一步包括:
[0025]恢復(fù)單元,用于對內(nèi)存所在的服務(wù)器進(jìn)行重啟,以對內(nèi)存恢復(fù)內(nèi)存刷新。
[0026]本發(fā)明實(shí)施例提供了一種基于RHEL7.0的內(nèi)存測試方法及裝置,在對內(nèi)存測試之前,通過向/proc虛擬文件系統(tǒng)發(fā)送echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新,由于內(nèi)存刷新占用的內(nèi)存性能較多,通過鎖定內(nèi)存刷新方式,不僅不影響其他應(yīng)用程序的運(yùn)行,還提高了內(nèi)存的測試性能。
【附圖說明】
[0027]圖1是本發(fā)明實(shí)施例提供的方法流程圖;
[0028]圖2是本發(fā)明另一實(shí)施例提供的方法流程圖;
[0029]圖3是本發(fā)明實(shí)施例提供的操作示意圖;
[0030]圖4是本發(fā)明實(shí)施例提供的內(nèi)存使用情況不意圖;
[0031]圖5是本發(fā)明實(shí)施例提供的裝置所在設(shè)備的硬件架構(gòu)圖;
[0032]圖6是本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖;
[0033]圖7是本發(fā)明另一實(shí)施例提供的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0034]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0035]如圖1所示,本發(fā)明實(shí)施例提供了一種基于RHEL7.0的內(nèi)存測試方法,該方法可以包括以下步驟:
[0036]步驟101:獲取內(nèi)存測試指令。
[0037]步驟102:向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新。
[0038]步驟103:根據(jù)內(nèi)存測試指令,對內(nèi)存性能進(jìn)行測試。
[0039]根據(jù)上述方案,在對內(nèi)存測試之前,通過向/proc虛擬文件系統(tǒng)發(fā)送echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新,由于內(nèi)存刷新占用的內(nèi)存性能較多,通過鎖定內(nèi)存刷新方式,不僅不影響其他應(yīng)用程序的運(yùn)行,還提高了內(nèi)存的測試性能。
[0040]由于內(nèi)存中的緩存占用內(nèi)存的一部分性能,若內(nèi)存的存儲(chǔ)空間越大,其在測試時(shí)內(nèi)存性能越高,因此,在向/proc虛擬文件系統(tǒng)發(fā)送第一 echo指令,以使/proc虛擬文件系統(tǒng)鎖定內(nèi)存刷新之前,進(jìn)一步包括:向/proc虛擬文件系統(tǒng)發(fā)送第二 echo指令,以使/proc虛擬文件系統(tǒng)清除內(nèi)存中的緩存。從而能夠進(jìn)一步提高內(nèi)存的測試性能。
[0041]另外由于本實(shí)施例是對虛擬文件系統(tǒng)中的虛擬文件進(jìn)行參數(shù)修改,不會(huì)對其他應(yīng)用程序的運(yùn)行造成影響,并且使用echo命令導(dǎo)入?yún)?shù),并不會(huì)永久改寫配置文件,因此,在對內(nèi)存性能進(jìn)行測試之后,進(jìn)一步包括:對內(nèi)存所在的服務(wù)器進(jìn)行重啟,以對內(nèi)存恢復(fù)內(nèi)存刷新,因此使得服務(wù)器系統(tǒng)恢復(fù)到調(diào)優(yōu)之前的狀態(tài),該狀態(tài)回滾易實(shí)現(xiàn),容錯(cuò)率高。
[0042]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0043]如圖2所示,本發(fā)明實(shí)施例提供了一種基于RHEL7.0的內(nèi)存測試方法,該方法可以包括以下步驟:
[0044]步驟201:獲取內(nèi)存測試指令。
[0045]在本實(shí)施例中,目的在于對內(nèi)存進(jìn)行性能測試,因此,需要在獲取到內(nèi)存測試指令時(shí),即需要執(zhí)行該內(nèi)存測試指令。
[0046]在本實(shí)施例中,內(nèi)存所在服務(wù)器所處的RHEL7.0運(yùn)行環(huán)境的主要特征可以包括:能夠運(yùn)行RHEL7.0的所有高端及通用服務(wù)器;運(yùn)行的硬件環(huán)境應(yīng)具備獨(dú)立的CPU及內(nèi)存儲(chǔ)器,以及獨(dú)立或共享的外存儲(chǔ)器;該1^?!^.0運(yùn)行環(huán)境通過將OpenMP部署于每個(gè)節(jié)點(diǎn),并通過MPI環(huán)境來統(tǒng)一運(yùn)行,以達(dá)到運(yùn)行效率的提升。
[0047]步驟202:向/proc虛擬文件系統(tǒng)發(fā)送echo指令,以使/proc虛擬文件系統(tǒng)將參數(shù)I導(dǎo)入到drop_caches文件中,以清除內(nèi)存中的緩存。
[0048]步驟203:向/proc虛擬文件系統(tǒng)發(fā)送echo指令,以使/proc虛擬文件系統(tǒng)將參數(shù)3導(dǎo)入到drop_caches文件中,以鎖定內(nèi)存刷新。
[0049]在Linux中,很多配置及運(yùn)行變量的更改都與配置文件相關(guān),通過配置文件可以實(shí)現(xiàn)諸如系統(tǒng)內(nèi)核參數(shù)、運(yùn)行變量、系統(tǒng)性能的更改等。RHEL7.0作為RHEL的新一代OS,沿用了 Linux經(jīng)典的配置文件調(diào)整方法。本實(shí)施例正是利用了 Linux中配置文件容易實(shí)現(xiàn)修改及還原、對應(yīng)用程序產(chǎn)生的影響小的特點(diǎn),來達(dá)到在不影響測試程序本身運(yùn)行的前提下,提高測試成績的目的。
[0050]在本實(shí)施例中,/proc目錄是一種文件系統(tǒng),即proc文件系統(tǒng)。與其它常見的文件系統(tǒng)不同的,/proc —種虛擬文件系統(tǒng),在該/proc虛擬文件系統(tǒng)中存儲(chǔ)的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件,用戶可以通過這些文件查看有關(guān)系統(tǒng)硬件及當(dāng)前正在運(yùn)行進(jìn)程的信息,甚至可以通過更改其中某些文件來改變內(nèi)核的運(yùn)行狀態(tài)。
[0051 ] 在本實(shí)施例中,在/proc/sys/vm/路徑下,文件drop_caches是虛擬文件系統(tǒng)中的一個(gè)虛擬文件,我們可以通過對它的讀寫操作作為與內(nèi)核實(shí)體間進(jìn)行通信的一種手段。也就是說可以通過修改這個(gè)文件,來對當(dāng)前內(nèi)核的行為做出調(diào)整。那么我們可以通過調(diào)整/proc/sys/vm/drop_caches來對內(nèi)存的使用方式進(jìn)行操作。其中,該操作如圖3所示。其中,修改/proc文件夾下的文件只會(huì)對相應(yīng)的系統(tǒng)Kernel產(chǎn)生影響,對其他系統(tǒng)功能及運(yùn)行的應(yīng)用程序影響甚微,可以在附帶影響最小的情況下在操作系統(tǒng)下實(shí)現(xiàn)對內(nèi)存性能的調(diào)優(yōu)。
[0052]在本實(shí)施例中,使用echo命令向drop_caches文件中導(dǎo)入?yún)?shù),即,向/proc文件系統(tǒng)發(fā)送echo命令,其中該echo命令攜帶參數(shù)l,/proc文件系統(tǒng)將該參數(shù)I導(dǎo)入到drop_caches文件中,其中,參數(shù)“I”表示清空內(nèi)存中的