国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向系統(tǒng)可靠性保障的軟件配置錯(cuò)誤診斷仿真

2023-07-29 01:29:12呂曉華崔建弘范家熠
計(jì)算機(jī)仿真 2023年6期
關(guān)鍵詞:可靠性服務(wù)器錯(cuò)誤

呂曉華,王 諾*,崔建弘,范家熠

(1. 河北工程技術(shù)學(xué)院人工智能與大數(shù)據(jù)學(xué)院,河北 石家莊 050000;2. 江蘇科技大學(xué)蘇州理工學(xué)院,江蘇 張家港 215600)

1 引言

分析軟件配置可以明確該系統(tǒng)的綁定服務(wù)器端口、應(yīng)用算法以及數(shù)據(jù)存儲(chǔ)位置等信息,但由于涉及參數(shù)巨大,不完全滿足要求的配置結(jié)構(gòu),會(huì)影響系統(tǒng)正常運(yùn)行、無(wú)法執(zhí)行對(duì)應(yīng)功能,降低了其可靠性,具體表現(xiàn)如下:配置錯(cuò)誤是服務(wù)失效、系統(tǒng)異常的主要原因之一,經(jīng)相關(guān)調(diào)查表明50%以上的系統(tǒng)故障是由配置錯(cuò)誤導(dǎo)致的。配置錯(cuò)誤所造成的后果也較為嚴(yán)重,直接影響的系統(tǒng)的服務(wù)水平,給開(kāi)發(fā)商帶來(lái)口碑下降、經(jīng)濟(jì)損失等負(fù)面影響。

現(xiàn)階段關(guān)于軟件可靠性的研究有很多,羅玲[1]提出一種采用隨機(jī)Petri網(wǎng)的嵌入式機(jī)載軟件可靠性檢測(cè)。該方法采用Petri網(wǎng)對(duì)軟件系統(tǒng)建模,獲得判定準(zhǔn)則與檢測(cè)策略,隨后再次通過(guò)Petri網(wǎng)對(duì)系統(tǒng)是否存在設(shè)計(jì)缺陷進(jìn)行仿真驗(yàn)證,結(jié)果表明方法是有效可行的,但多次使用Petri網(wǎng),對(duì)其建模要求較高,面對(duì)多功能配置系統(tǒng)時(shí),診斷效率和精度不穩(wěn)定,受軟件復(fù)雜程度影響較大;除此之外,還有學(xué)者提出了一種基于代碼路徑的嵌入式軟件可靠度評(píng)估方法,采用代碼分析法結(jié)合已有的軟件檢測(cè)數(shù)據(jù)驗(yàn)證原始評(píng)估模型,根據(jù)驗(yàn)證結(jié)果完善對(duì)應(yīng)缺陷,給出提高可靠性方案,實(shí)驗(yàn)表明該方法在完善階段可能出現(xiàn)誤差,導(dǎo)致最終評(píng)估結(jié)果準(zhǔn)確性低,可操作性和適用性差。

基于此,本文面向保障系統(tǒng)的可靠性,給出一種基于軟件間關(guān)聯(lián)關(guān)系的配置錯(cuò)誤診斷方法??偨Y(jié)軟件組件各配置間的關(guān)聯(lián)關(guān)系,根據(jù)推導(dǎo)出的錯(cuò)誤診斷規(guī)則,對(duì)錯(cuò)誤源進(jìn)行判斷。實(shí)驗(yàn)表明所提方法的診斷精度高,具有可應(yīng)用于實(shí)際的價(jià)值。

2 軟件配置項(xiàng)類型匹配

設(shè)軟件的組件模塊為M1,M2,M3,…Mn,可靠性可以表示為R1,R2,R3,…Rn,若通過(guò)所有模塊匯合來(lái)完成系統(tǒng)的一個(gè)任務(wù)[2],則其可靠性又可以描述為min{R1,R2,R3,…Rn}。如果一個(gè)N模表決系統(tǒng)能夠糾正?(N-1)/2」個(gè)錯(cuò)誤,軟件配置中的每個(gè)模塊可靠性是R,那么此時(shí)系統(tǒng)的可靠性可以表示為

(1)

RTMR(t)=3{R(t)·R(t)[1-R(t)]}+R(t)·R(t)·R(t)=3R2(t)-2R3(t)=3e-2λt-2e-3λt

(2)

式中,λ表示軟件失效率;t表示軟件運(yùn)行時(shí)間,令RTMR(t)>R(t)則有

3e-2λt-2e-3λt>e-λt

(3)

為簡(jiǎn)化計(jì)算,令e-λt=K,則有

3K2-2K3=K0.5

(4)

通過(guò)式(2)、式(3)、式(4)可得,軟件組件的可靠性要高于0.5,系統(tǒng)才能正常運(yùn)行。設(shè)加入數(shù)據(jù)指令后,同時(shí)考慮容錯(cuò)條件的系統(tǒng)可靠性為R′(t),不考慮容錯(cuò)條件的可靠性為R″(t),則原系統(tǒng)R′(t)、R(t)的比值r以及R″(t)和R′(t)之間的比值關(guān)系分別為:

(5)

式中,u表示錯(cuò)誤率,通過(guò)上文可得,現(xiàn)有系統(tǒng)的可靠性要高于原有系統(tǒng),則有

(6)

由此可得,軟件配置采用不同結(jié)構(gòu)、不同連接方式相連所得的軟件系統(tǒng)可靠性具有一定的差異[4],因此需要分析系統(tǒng)軟件中各配置間的關(guān)聯(lián)性,才能更好地完成配置錯(cuò)誤的診斷。

通常配置間的關(guān)聯(lián)主要表現(xiàn)在配置項(xiàng)類型的一致上,因此要想理清軟件配置之間的關(guān)系,首先要明確匹配配置項(xiàng)類型,當(dāng)配置項(xiàng)值完全被匹配時(shí),就可以初步判定該配置的類型,憑借相關(guān)指令完成匹配準(zhǔn)確性的驗(yàn)證。例如檢測(cè)到的配置項(xiàng)值為"/var /www/abc"時(shí),將其初步定義為“路徑”,通過(guò)分析器調(diào)用路徑類型指令,確認(rèn)該路徑是否存在,檢測(cè)出該路徑是絕對(duì)路徑還是相對(duì)路徑,根據(jù)檢測(cè)結(jié)果再次將該路徑分類為絕對(duì)路徑或相對(duì)路徑。但是某些類型的軟件配置不能夠直接驗(yàn)證[5],需要根據(jù)大量配置樣本內(nèi)容進(jìn)行訓(xùn)練,并利用分類器確認(rèn)該配置的最終類型。

確定系統(tǒng)中的每個(gè)配置類型后,就可以初步通過(guò)其所屬類型進(jìn)行關(guān)系關(guān)聯(lián),針對(duì)字符串、數(shù)值等通用配置類型關(guān)系可以使用關(guān)聯(lián)算法進(jìn)一步訓(xùn)練生成[6]。具體方法如下:以MySQL監(jiān)聽(tīng)地址舉例,首先通過(guò)系統(tǒng)日志進(jìn)行類型匹配,匹配完成后由MySQL配置監(jiān)聽(tīng)已被判定的IP網(wǎng)址,此時(shí)兩個(gè)配置的中間數(shù)據(jù)庫(kù)地址以及網(wǎng)絡(luò)接口地址,也會(huì)被判定為IP地址,那么識(shí)別出的各個(gè)地址類型配置項(xiàng)之間就產(chǎn)生了關(guān)聯(lián),相應(yīng)的關(guān)聯(lián)規(guī)則也會(huì)就此產(chǎn)生。

3 診斷規(guī)則生成

配置間的關(guān)聯(lián)關(guān)系生成后,可獲得相應(yīng)的診斷規(guī)則。系統(tǒng)中各軟件的實(shí)際應(yīng)用環(huán)境與其具體功能密切相關(guān),僅僅依靠數(shù)據(jù)挖掘生成診斷規(guī)則的效率較低[7],在數(shù)據(jù)量較大的系統(tǒng)中不可行。因此本文結(jié)合系統(tǒng)的實(shí)際運(yùn)維經(jīng)驗(yàn)以及各配置之間的關(guān)聯(lián)關(guān)系,給出了診斷規(guī)則,依然以MySQL配置為例,給出其規(guī)則生成模板為[〈組件〉-〈路徑〉]grant[〈組件〉-〈用戶名〉],尖括號(hào)中的部分表示占位符。規(guī)則在產(chǎn)生的過(guò)程中首先會(huì)枚舉所有組件及配置項(xiàng),例如通過(guò)模板給出MySQL配置的一條相關(guān)規(guī)則如下:MySQL-datadir grant CenTOS-MySQL,表示CenTOS賬戶的MySQL需具備訪問(wèn)MySQL的datadir權(quán)限,其余診斷規(guī)則模板如表1所示。

表1 診斷規(guī)則生成模板

結(jié)合各配置之間的關(guān)聯(lián)關(guān)系,給定診斷規(guī)則生成模板,用戶也可以根據(jù)系統(tǒng)的實(shí)際情況自定義刪除或添加模板。針對(duì)所有模板系統(tǒng)會(huì)根據(jù)全部需要匹配的占位符自動(dòng)進(jìn)行數(shù)據(jù)填充,生成初始規(guī)則。生成后的初始規(guī)則中可能摻雜了部分垃圾規(guī)則[8],因此還需要進(jìn)行一次初始規(guī)則篩選,刪除無(wú)意義的垃圾規(guī)則。

4 軟件配置錯(cuò)誤診斷實(shí)現(xiàn)

首先給出2點(diǎn)錯(cuò)誤源假設(shè)如下:

假設(shè)1:節(jié)點(diǎn)狀態(tài)錯(cuò)誤,根據(jù)診斷規(guī)則可以得出該錯(cuò)誤主要體現(xiàn)在兩個(gè)方面分別為:各路徑對(duì)應(yīng)的輸入關(guān)系流判斷錯(cuò)誤,任務(wù)執(zhí)行時(shí)出現(xiàn)不合理現(xiàn)象。

假設(shè)2:輸入數(shù)據(jù)存在錯(cuò)誤,因此根據(jù)診斷規(guī)則可以得出不論系統(tǒng)各個(gè)節(jié)點(diǎn)的狀態(tài)是否正常,錯(cuò)誤關(guān)系都會(huì)傳遞到輸出關(guān)系流。

根據(jù)以上假設(shè)得出如下公理:

公理:若某節(jié)點(diǎn)的所有輸出關(guān)系均為正確的,則可認(rèn)定該節(jié)點(diǎn)沒(méi)有錯(cuò)誤,如果某節(jié)點(diǎn)的輸出關(guān)系流存在錯(cuò)誤,則認(rèn)為該節(jié)點(diǎn)中存在錯(cuò)誤。

定理:假設(shè)(v1,v2,…,vm-1,vm)表示系統(tǒng)對(duì)應(yīng)有向圖的通路,如果輸出數(shù)據(jù)不存在錯(cuò)誤,則該條通路中沒(méi)有錯(cuò)誤源,如果vm的輸出數(shù)據(jù)有錯(cuò)誤,則其中至少有一個(gè)錯(cuò)誤源vi。

證明:如果vm的輸出關(guān)系沒(méi)有錯(cuò)誤,則根據(jù)公理可知vm不存在錯(cuò)誤,vm的輸入關(guān)系流也是不能存在錯(cuò)誤的,也就是說(shuō)vm前一節(jié)點(diǎn)的輸出關(guān)系流也沒(méi)有錯(cuò)誤,則通道(v1,v2,…,vm-1,vm)中沒(méi)有錯(cuò)誤。

根據(jù)以上定理總結(jié)出以下兩點(diǎn)錯(cuò)誤:

1)若vm的輸入數(shù)據(jù)沒(méi)有錯(cuò)誤,則該節(jié)點(diǎn)的前一節(jié)點(diǎn)vm-1輸出是沒(méi)有錯(cuò)誤的,從而可以進(jìn)一步確定該節(jié)點(diǎn)的初始輸入規(guī)則到vm-1節(jié)點(diǎn)之間的通路中沒(méi)有錯(cuò)誤。也就可以得出,若vm存在錯(cuò)誤,則實(shí)施任務(wù)時(shí)在該節(jié)點(diǎn)存在不合理行為,是唯一導(dǎo)致該點(diǎn)輸出錯(cuò)誤的錯(cuò)誤源。

2)若vm輸入規(guī)則為錯(cuò)誤的,則該節(jié)點(diǎn)的前一節(jié)點(diǎn)vm-1的輸出規(guī)則也是錯(cuò)誤的,以此類推往前搜索,直至發(fā)現(xiàn)某一節(jié)點(diǎn)vi的輸入規(guī)則是無(wú)錯(cuò)誤的,則可以判定從初始節(jié)點(diǎn)到該節(jié)點(diǎn)通路上的輸入規(guī)則是正確的,而vi的錯(cuò)誤沿著通路傳輸至vm,導(dǎo)致vm的輸出規(guī)則出現(xiàn)錯(cuò)誤。

若任意節(jié)點(diǎn)vk的執(zhí)行主體發(fā)現(xiàn)前一節(jié)點(diǎn)的輸入關(guān)系有錯(cuò)誤,則根據(jù)診斷規(guī)則可知該任務(wù)的前一節(jié)點(diǎn)輸出關(guān)系流發(fā)生錯(cuò)誤,此時(shí)軟件的運(yùn)行就會(huì)出現(xiàn)故障,需要對(duì)該故障進(jìn)行定位和診斷,具體步驟如下:

步驟1:確定從原始節(jié)點(diǎn)到vk-1之間的通路為(v1,v2,…,vk-1),令檢查節(jié)點(diǎn)為vk-i。

步驟2:根據(jù)診斷規(guī)則判斷節(jié)點(diǎn)vk-i的輸入數(shù)據(jù)是否有錯(cuò)誤存在,如果沒(méi)有表示從初始點(diǎn)到vk-i之間的通路中只有vk-i節(jié)點(diǎn)上有不合理行為,則按照診斷規(guī)則進(jìn)入錯(cuò)誤診斷流程,即轉(zhuǎn)入步驟3,如果存在錯(cuò)誤轉(zhuǎn)入步驟4。

步驟3:判斷vk-i的輸出錯(cuò)誤類型,記錄錯(cuò)誤內(nèi)容,分析錯(cuò)誤原因,儲(chǔ)存至錯(cuò)誤類型數(shù)據(jù)庫(kù),避免同樣錯(cuò)誤繼續(xù)發(fā)生,轉(zhuǎn)入步驟5。

步驟4:令i=i+1,并轉(zhuǎn)入步驟2。

步驟5:診斷結(jié)束。

5 仿真研究

5.1 仿真環(huán)境

為實(shí)現(xiàn)對(duì)錯(cuò)誤診斷算法的有效性測(cè)試,搭建具體的診斷環(huán)境平臺(tái),平臺(tái)包括3臺(tái)服務(wù)器,一臺(tái)用來(lái)管理節(jié)點(diǎn),兩臺(tái)用來(lái)計(jì)算節(jié)點(diǎn)。收集目標(biāo)軟件運(yùn)行過(guò)程中的系統(tǒng)調(diào)用追蹤信息,采用本文方法對(duì)以下常用服務(wù)器的軟件配置情況進(jìn)行診斷,分別為:①多線程HTTP服務(wù)器;②關(guān)系型數(shù)據(jù)庫(kù)MySQL;③應(yīng)用程序服務(wù)器Java Web;④分布式文件系統(tǒng)Tomcat。

實(shí)驗(yàn)結(jié)果表明:普通圓弧點(diǎn)云擬合的相對(duì)精度在0.003左右,復(fù)雜圓弧點(diǎn)云擬合的相對(duì)精度在0.01左右,這說(shuō)明基于拉格朗日乘子法的空間圓弧擬合優(yōu)化方法有較強(qiáng)的理論研究意義和工程實(shí)踐價(jià)值。

為了獲得系統(tǒng)的真實(shí)配置錯(cuò)誤,使用相關(guān)術(shù)語(yǔ)搜索測(cè)試對(duì)象的漏洞庫(kù),手動(dòng)檢測(cè)搜索出由配置錯(cuò)誤所產(chǎn)生的bug,根據(jù)錯(cuò)誤報(bào)告重現(xiàn)每個(gè)bug。最終得出實(shí)驗(yàn)對(duì)象共存在9個(gè)由軟件配置錯(cuò)誤導(dǎo)致的bug,如下:

1)Apache-1

其所在服務(wù)器為HTTP,導(dǎo)致其產(chǎn)生的原因?yàn)?由于軟件配置錯(cuò)誤,是節(jié)點(diǎn)誤標(biāo)記導(dǎo)致了無(wú)限循環(huán),具體體現(xiàn)在系統(tǒng)中的癥狀為掛起。

2)Apache-2

其所在服務(wù)器為HTTP,導(dǎo)致其產(chǎn)生的原因?yàn)?由于軟件配置錯(cuò)誤,誤標(biāo)記導(dǎo)致SSL重復(fù)銷毀和創(chuàng)建,降低系統(tǒng)性能。具體體現(xiàn)在系統(tǒng)中的癥狀為運(yùn)行速度減慢。

3)Tomcat-1

其所在服務(wù)器為Java Web,導(dǎo)致其產(chǎn)生的原因?yàn)?過(guò)濾器鏈項(xiàng)設(shè)置錯(cuò)誤導(dǎo)致無(wú)限循環(huán)。具體癥狀為掛起。

4)Tomcat-2

5)Tomcat-3

其所在服務(wù)器為Java Web,導(dǎo)致其產(chǎn)生的原因?yàn)?嘗試將讀鎖升級(jí)至寫鎖知識(shí)服務(wù)器,具體癥狀為掛起。

6)HDFS-1

其所在服務(wù)器為Tomcat,導(dǎo)致其產(chǎn)生的原因?yàn)?無(wú)休止等待系統(tǒng)設(shè)置原子變量,具體癥狀為掛起。

7)HDFS-2

其所在服務(wù)器為Tomcat,導(dǎo)致其產(chǎn)生的原因?yàn)?連續(xù)讀取套接字直至超時(shí),具體癥狀為掛起。

8)MySQL-1

其所在服務(wù)器為MySQL,導(dǎo)致其產(chǎn)生的原因?yàn)?兩個(gè)線程同時(shí)嘗試執(zhí)行INSERT DELAYED語(yǔ)句,但其中一個(gè)線程已鎖定表導(dǎo)致兩個(gè)線程進(jìn)入死鎖狀態(tài),具體癥狀為掛起。

9)MySQL-2

其所在服務(wù)器為MySQL,導(dǎo)致其產(chǎn)生的原因?yàn)?在截取一個(gè)大表后,寫入磁盤頻繁異常,具體癥狀為掛起。

5.2 診斷有效性測(cè)試

通過(guò)本文方法對(duì)以上系統(tǒng)進(jìn)行錯(cuò)誤診斷,診斷結(jié)果如表2所示。

表2 診斷結(jié)果表

從表2中可以看出,本文方法成功地診斷出了不同系統(tǒng)由于軟件配置導(dǎo)致的bug,且診斷結(jié)果均與實(shí)際情況相同。

5.3 檢出率測(cè)試

對(duì)比本文方法與基于隨機(jī)Petri網(wǎng)、基于代碼路徑的軟件配置錯(cuò)誤診斷檢出率,結(jié)果如圖1所示。可以看出所提方法的總檢出率要高于其它兩種方法,進(jìn)一步證明了本文方法能夠有效地完成配置錯(cuò)誤診斷,能夠滿足實(shí)際需求。

圖1 不同方法檢出率對(duì)比圖

5.4 運(yùn)行效率測(cè)試

本節(jié)測(cè)試錯(cuò)誤診斷的運(yùn)行時(shí)間是否能夠達(dá)到實(shí)時(shí)性要求,分別記錄出算法診斷不同錯(cuò)誤的起始與結(jié)束時(shí)間,各個(gè)診斷耗時(shí)如圖2所示。

圖2 不同錯(cuò)誤診斷耗時(shí)

從圖2中可以看出,本文方法的平均耗時(shí)較短,其中所有錯(cuò)誤中診斷耗時(shí)最長(zhǎng)的為Tomcat-3,共用了12s,最短為MySQL-1,耗時(shí)僅用了5s,所提方法能夠在短時(shí)間內(nèi)完成大量計(jì)算,運(yùn)行效率較高。

5.5 診斷開(kāi)銷測(cè)試

在診斷過(guò)程中,會(huì)占用額外的運(yùn)行空間,將該空間稱為性能開(kāi)銷,為驗(yàn)證所提方法能否在不占用大量額外空間的前提下完成計(jì)算,對(duì)其性能開(kāi)銷進(jìn)行測(cè)試,并根據(jù)實(shí)際數(shù)據(jù)對(duì)各測(cè)試設(shè)置工作量。針對(duì)Apache、Tomcat服務(wù)器,采用httperf以每秒100、50次的頻率向二者分別發(fā)出請(qǐng)求;使HDFS服務(wù)器運(yùn)行Pi程序;使MySQL服務(wù)器每秒執(zhí)行20次select操作。共進(jìn)行5次試驗(yàn),試驗(yàn)結(jié)果如圖3所示。

圖3 診斷開(kāi)銷測(cè)試結(jié)果

從圖3中可以看出,所提方法對(duì)MySQL-2產(chǎn)生的額外開(kāi)銷最低,僅占用系統(tǒng)內(nèi)存約0.1GB,而最高開(kāi)銷為Tomcat-3,也不超過(guò)0.5GB,且對(duì)各個(gè)bug進(jìn)行診斷時(shí)所占用內(nèi)存均低于其它兩種,證明了所提方法能夠在不影響系統(tǒng)正常運(yùn)行的情況下完成診斷,確保系統(tǒng)的可靠性。

6 結(jié)論

隨著軟件的功能增加,

軟件配置的復(fù)雜度也大幅度增加,配置錯(cuò)誤也就隨之產(chǎn)生,為及時(shí)發(fā)現(xiàn)配置錯(cuò)誤情況,提高系統(tǒng)可靠性,提出一種面向系統(tǒng)可靠性保障的軟件配置錯(cuò)誤診斷仿真。首先根據(jù)實(shí)際參數(shù)給出各配置之間的關(guān)聯(lián)關(guān)系,制定出診斷規(guī)則,根據(jù)診斷規(guī)則判斷系統(tǒng)各節(jié)點(diǎn)的輸出和輸入數(shù)據(jù)流是否正確完成錯(cuò)誤診斷全過(guò)程。通過(guò)實(shí)驗(yàn)分析表明,所提方法的診斷準(zhǔn)確率較高、運(yùn)行耗時(shí)較短且性能開(kāi)銷占比較低,能夠滿足實(shí)際需求。

猜你喜歡
可靠性服務(wù)器錯(cuò)誤
在錯(cuò)誤中成長(zhǎng)
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
可靠性管理體系創(chuàng)建與實(shí)踐
電子制作(2017年2期)2017-05-17 03:55:06
得形忘意的服務(wù)器標(biāo)準(zhǔn)
計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
基于可靠性跟蹤的薄弱環(huán)節(jié)辨識(shí)方法在省級(jí)電網(wǎng)可靠性改善中的應(yīng)用研究
不犯同樣錯(cuò)誤
可靠性比一次采購(gòu)成本更重要
風(fēng)能(2015年9期)2015-02-27 10:15:24
《錯(cuò)誤》:怎一個(gè)“美”字了得
湘潭县| 德惠市| 中方县| 景东| 滕州市| 贵溪市| 依安县| 桐梓县| 博罗县| 公主岭市| 石河子市| 阳谷县| 泾阳县| 青浦区| 金山区| 赤水市| 临桂县| 布拖县| 舟曲县| 阜宁县| 南平市| 灯塔市| 海阳市| 满城县| 汉阴县| 贵阳市| 临澧县| 邹平县| 油尖旺区| 长岭县| 乌审旗| 习水县| 阳高县| 青州市| 安多县| 都兰县| 瑞安市| 汝南县| 宁远县| 兴仁县| 淳化县|