本發(fā)明涉及計(jì)算機(jī)服務(wù)器的
技術(shù)領(lǐng)域:
:,具體涉及到一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法及系統(tǒng)。
背景技術(shù):
::在服務(wù)器領(lǐng)域中,內(nèi)存是服務(wù)器中重要的部件之一,它是與cpu進(jìn)行溝通的橋梁。服務(wù)器中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的,因此內(nèi)存的性能對服務(wù)器的影響非常大。內(nèi)存(memory)也被稱為內(nèi)存儲器,其作用是用于暫時(shí)存放cpu中的運(yùn)算數(shù)據(jù),以及與硬盤等外部存儲器交換的數(shù)據(jù)。只要服務(wù)器在運(yùn)行中,cpu就會把需要運(yùn)算的數(shù)據(jù)調(diào)到內(nèi)存中進(jìn)行運(yùn)算,當(dāng)運(yùn)算完成后cpu再將結(jié)果傳送出來,內(nèi)存的運(yùn)行也決定了服務(wù)器的穩(wěn)定運(yùn)行。內(nèi)存是服務(wù)器系統(tǒng)的關(guān)鍵組成部分,內(nèi)存的好壞直接影響服務(wù)器的正常工作。在現(xiàn)有技術(shù)中,當(dāng)內(nèi)存出錯(cuò)時(shí),對內(nèi)存的診斷技術(shù)較為復(fù)雜且穩(wěn)定性無法得到保證,無法對內(nèi)存簡單快速穩(wěn)定地診斷測試。技術(shù)實(shí)現(xiàn)要素:基于上述問題,本發(fā)明提出一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法及系統(tǒng)。本發(fā)明快速簡單實(shí)現(xiàn)模擬環(huán)境,測試相關(guān)功能是否實(shí)現(xiàn),直接定位到故障內(nèi)存的具體槽位,更高效的篩選出故障內(nèi)存,簡化測試流程,提高服務(wù)器的穩(wěn)定性。本發(fā)明提供如下技術(shù)方案:一方面,本發(fā)明提供一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法,包括:步驟101,運(yùn)行腳本程序,獲取主機(jī)名,設(shè)置內(nèi)存注錯(cuò)位置及內(nèi)存閾值,執(zhí)行內(nèi)存注錯(cuò);步驟102,判斷內(nèi)存閾值是否達(dá)到預(yù)設(shè)閾值,若是則內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮;步驟103,bmc定位所述內(nèi)存異常,并存儲在bmc日志中;步驟104,判斷所述內(nèi)存異常的類型,所述類型包括可修復(fù)異常和不可修復(fù)異常,當(dāng)所述內(nèi)存異常為可修復(fù)異常則通過清除閾值來清除所述內(nèi)存異常,當(dāng)所述異常為不可修復(fù)異常則告警。其中,在運(yùn)行腳本之前,將idk工具復(fù)制到linux系統(tǒng)下解壓,進(jìn)入idk工具運(yùn)行腳本程序。其中,所述內(nèi)存注錯(cuò)可以注可修復(fù)錯(cuò)誤或者不可修復(fù)錯(cuò)誤。其中,所述預(yù)設(shè)閾值為2048。另外,本發(fā)明還提供一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試系統(tǒng),所述系統(tǒng)包括:注錯(cuò)模塊,用于運(yùn)行腳本程序,獲取主機(jī)名,設(shè)置內(nèi)存注錯(cuò)位置及內(nèi)存閾值,執(zhí)行內(nèi)存注錯(cuò);判斷模塊,用于判斷內(nèi)存閾值是否達(dá)到預(yù)設(shè)閾值,若是則內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮;定位模塊,用于bmc定位所述內(nèi)存異常,并存儲在bmc日志中;修復(fù)模塊,用于判斷所述內(nèi)存異常的類型,所述類型包括可修復(fù)異常和不可修復(fù)異常,當(dāng)所述內(nèi)存異常為可修復(fù)異常則通過清除閾值來清除所述內(nèi)存異常,當(dāng)所述異常為不可修復(fù)異常則告警。其中,在運(yùn)行腳本之前,將idk工具復(fù)制到linux系統(tǒng)下解壓,進(jìn)入idk工具運(yùn)行腳本程序。其中,所述內(nèi)存注錯(cuò)可以注可修復(fù)錯(cuò)誤或者不可修復(fù)錯(cuò)誤。其中,所述預(yù)設(shè)閾值為2048。本發(fā)明提供了一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法及系統(tǒng),通過模擬當(dāng)內(nèi)存出現(xiàn)可修復(fù)或者不可修復(fù)錯(cuò)誤,檢查相關(guān)硬件是否有報(bào)警,當(dāng)內(nèi)存閾值達(dá)到一定值后,內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮,同時(shí)bmc下定位內(nèi)存出現(xiàn)的異常,當(dāng)報(bào)可修復(fù)的異常的時(shí),通過清除閾值,使內(nèi)存回復(fù)正常工作,當(dāng)報(bào)不可修復(fù)的異常的時(shí),更換內(nèi)存;本發(fā)明快速簡單實(shí)現(xiàn)模擬環(huán)境,測試相關(guān)功能是否實(shí)現(xiàn),直接定位到故障內(nèi)存的具體槽位,更高效的篩選出故障內(nèi)存,簡化測試流程,提高服務(wù)器的穩(wěn)定性。附圖說明圖1是本發(fā)明的方法步驟流程圖;圖2是本發(fā)明的系統(tǒng)結(jié)構(gòu)框圖。具體實(shí)施方式為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。本發(fā)明提供一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法,包括:步驟101,運(yùn)行腳本程序,獲取主機(jī)名,設(shè)置內(nèi)存注錯(cuò)位置及內(nèi)存閾值,執(zhí)行內(nèi)存注錯(cuò);將idk工具復(fù)制到linux系統(tǒng)下,關(guān)閉防火墻(iptables-f),安裝python-2.7.11(①tar–zxvfpython-2.7.11.tgz②cdpython-2.7.11③./configure④make⑤makeinstall),根據(jù)系統(tǒng)版本選擇core版本解壓縮(tar–zxvfidk_core_3.45_linux_rhel_7_2.tgz),開始監(jiān)控(①cdidk_core②./install_driver.sh③./idk_core),解壓縮idk_client_3.45.zip(unzipidk_client_3.45.zip),然后進(jìn)入idk_client_3.45,運(yùn)行python2test.py;test.py腳本信息如下:importpurleyimportmathpur=purley.connect("localhost")die=purley.ondie.ondie(pur)sa=pur.at.reversetranslate({"socket":0,"imc":0,"channel":0,"dimm":0,"rank":0})["address"]#此處注錯(cuò)的位置foriinrange(2048):#此處是biossetup下默認(rèn)的閾值die.mem_inject_ondie(sa=sa,error_type="ecc_1",retries=3,target_channel="primary")pur.showmemerrors(),其中,#ecc_1為可修復(fù)的錯(cuò)誤/異常,ecc_2為不可修復(fù)的錯(cuò)誤/異常。步驟102,判斷內(nèi)存閾值是否達(dá)到預(yù)設(shè)閾值,若是則內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮;當(dāng)內(nèi)存閾值達(dá)到一定值后,該一定值為預(yù)設(shè)閾值,內(nèi)存指示燈就會亮,前控板內(nèi)存異常指示燈會亮。步驟103,bmc定位所述內(nèi)存異常,并存儲在bmc日志中;bmc下也可定位那個(gè)內(nèi)存出現(xiàn)的異常,用戶可根據(jù)bmc下報(bào)的日志做相關(guān)的操作。步驟104,判斷所述內(nèi)存異常的類型,所述類型包括可修復(fù)異常和不可修復(fù)異常,當(dāng)所述內(nèi)存異常為可修復(fù)異常則通過清除閾值來清除所述內(nèi)存異常,當(dāng)所述異常為不可修復(fù)異常則告警。當(dāng)報(bào)可修復(fù)的error的時(shí)候,用戶可通過清除閾值,所述清除閾值為自動(dòng)清除或手動(dòng)清除,使內(nèi)存回復(fù)正常工作;當(dāng)報(bào)不可修復(fù)的error的時(shí)候,用戶就必須更換內(nèi)存,以保證服務(wù)器的穩(wěn)定性。本發(fā)明提供了一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試方法,通過模擬當(dāng)內(nèi)存出現(xiàn)可修復(fù)或者不可修復(fù)錯(cuò)誤,檢查相關(guān)硬件是否有報(bào)警,當(dāng)內(nèi)存閾值達(dá)到一定值后,內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮,同時(shí)bmc下定位內(nèi)存出現(xiàn)的異常,當(dāng)報(bào)可修復(fù)的異常的時(shí),通過清除閾值,使內(nèi)存回復(fù)正常工作,當(dāng)報(bào)不可修復(fù)的異常的時(shí),更換內(nèi)存;本發(fā)明快速簡單實(shí)現(xiàn)模擬環(huán)境,測試相關(guān)功能是否實(shí)現(xiàn),直接定位到故障內(nèi)存的具體槽位,更高效的篩選出故障內(nèi)存,簡化測試流程,提高服務(wù)器的穩(wěn)定性。本發(fā)明的實(shí)施方式還提供了一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試系統(tǒng),包括:注錯(cuò)模塊201,用于運(yùn)行腳本程序,獲取主機(jī)名,設(shè)置內(nèi)存注錯(cuò)位置及內(nèi)存閾值,執(zhí)行內(nèi)存注錯(cuò);將idk工具復(fù)制到linux系統(tǒng)下,關(guān)閉防火墻(iptables-f),安裝python-2.7.11(①tar–zxvfpython-2.7.11.tgz②cdpython-2.7.11③./configure④make⑤makeinstall),根據(jù)系統(tǒng)版本選擇core版本解壓縮(tar–zxvfidk_core_3.45_linux_rhel_7_2.tgz),開始監(jiān)控(①cdidk_core②./install_driver.sh③./idk_core),解壓縮idk_client_3.45.zip(unzipidk_client_3.45.zip),然后進(jìn)入idk_client_3.45,運(yùn)行python2test.py;test.py腳本信息如下:importpurleyimportmathpur=purley.connect("localhost")die=purley.ondie.ondie(pur)sa=pur.at.reversetranslate({"socket":0,"imc":0,"channel":0,"dimm":0,"rank":0})["address"]#此處注錯(cuò)的位置foriinrange(2048):#此處是biossetup下默認(rèn)的閾值die.mem_inject_ondie(sa=sa,error_type="ecc_1",retries=3,target_channel="primary")pur.showmemerrors(),其中,#ecc_1為可修復(fù)的錯(cuò)誤/異常,ecc_2為不可修復(fù)的錯(cuò)誤/異常。判斷模塊202,用于判斷內(nèi)存閾值是否達(dá)到預(yù)設(shè)閾值,若是則內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮;當(dāng)內(nèi)存閾值達(dá)到一定值后,該一定值為預(yù)設(shè)閾值,內(nèi)存指示燈就會亮,前控板內(nèi)存異常指示燈會亮。定位模塊203,用于bmc定位所述內(nèi)存異常,并存儲在bmc日志中;bmc下也可定位那個(gè)內(nèi)存出現(xiàn)的異常,用戶可根據(jù)bmc下報(bào)的日志做相關(guān)的操作修復(fù)模塊204,用于判斷所述內(nèi)存異常的類型,所述類型包括可修復(fù)異常和不可修復(fù)異常,當(dāng)所述內(nèi)存異常為可修復(fù)異常則通過清除閾值來清除所述內(nèi)存異常,當(dāng)所述異常為不可修復(fù)異常則告警。當(dāng)報(bào)可修復(fù)的error的時(shí)候,用戶可通過清除閾值,所述清除閾值為自動(dòng)清除或手動(dòng)清除,使內(nèi)存回復(fù)正常工作;當(dāng)報(bào)不可修復(fù)的error的時(shí)候,用戶就必須更換內(nèi)存,以保證服務(wù)器的穩(wěn)定性。本發(fā)明提供了一種linux系統(tǒng)下基于idk內(nèi)存注錯(cuò)的測試系統(tǒng),通過模擬當(dāng)內(nèi)存出現(xiàn)可修復(fù)或者不可修復(fù)錯(cuò)誤,檢查相關(guān)硬件是否有報(bào)警,當(dāng)內(nèi)存閾值達(dá)到一定值后,內(nèi)存指示燈點(diǎn)亮,前控板內(nèi)存異常指示燈點(diǎn)亮,同時(shí)bmc下定位內(nèi)存出現(xiàn)的異常,當(dāng)報(bào)可修復(fù)的異常的時(shí),通過清除閾值,使內(nèi)存回復(fù)正常工作,當(dāng)報(bào)不可修復(fù)的異常的時(shí),更換內(nèi)存;本發(fā)明快速簡單實(shí)現(xiàn)模擬環(huán)境,測試相關(guān)功能是否實(shí)現(xiàn),直接定位到故障內(nèi)存的具體槽位,更高效的篩選出故障內(nèi)存,簡化測試流程,提高服務(wù)器的穩(wěn)定性。對所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。當(dāng)前第1頁12當(dāng)前第1頁12