• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于時(shí)間序列模型的Kafka 系統(tǒng)智能化管理方法①

    2023-11-20 08:36:52周宇澤司鵬搏張延華楊睿哲
    高技術(shù)通訊 2023年10期
    關(guān)鍵詞:交易量生產(chǎn)者個(gè)數(shù)

    周宇澤 司鵬搏 張延華 李 萌 楊睿哲

    (北京工業(yè)大學(xué)信息學(xué)部 北京 100124)

    0 引言

    近年來(lái),隨著互聯(lián)網(wǎng)普及程度的不斷提高和通信技術(shù)的高速發(fā)展,信息數(shù)據(jù)的安全問(wèn)題引起了社會(huì)的廣泛關(guān)注。區(qū)塊鏈有著高度去中心化、不可篡改的特點(diǎn),具有很高的安全性。目前,在各個(gè)領(lǐng)域中都進(jìn)行著區(qū)塊鏈的研究,例如車(chē)輛自組網(wǎng)(vehicle adhoc network,VANET)[1]、物聯(lián)網(wǎng)(Internet of Things,IoT)[2]、智慧城市[3]和云計(jì)算[4]等。共識(shí)算法幫助區(qū)塊鏈更好地完成節(jié)點(diǎn)間點(diǎn)對(duì)點(diǎn)通信、完成交易。比較有代表性的共識(shí)算法包括工作量證明(proof of work,PoW)[5]、權(quán)益證明(proof of stake,PoS)[6]、空間量證明(proof of space,PoSpace)[7]、實(shí)用拜占庭容錯(cuò)(practical Byzantium is fault-tolerant,PBFT)[8]以及近些年來(lái)逐漸被人們所熟知的Kafka 共識(shí)算法。

    Kafka 是一個(gè)高性能的分布式消息發(fā)布和訂閱系統(tǒng)[9]。Kafka 中,Kafka Broker[9]指Kafka 集群的服務(wù)器節(jié)點(diǎn)[10],每個(gè)Kafka Broker 提供了名為主題的邏輯概念。主題[11]是存儲(chǔ)消息的邏輯概念,被認(rèn)為是消息的集合,同類型的消息會(huì)處于同一個(gè)主題中。生產(chǎn)者將消息以push 的形式發(fā)送到Kafka Broker,而消費(fèi)者從Kafka Broker 消費(fèi)消息的過(guò)程是pull,主動(dòng)拉取數(shù)據(jù),完成共識(shí)。

    應(yīng)用Kafka 算法的區(qū)塊鏈系統(tǒng)經(jīng)常會(huì)面對(duì)海量交易等待處理的情況[12-13],大量交易集中在少數(shù)節(jié)點(diǎn)的情況,會(huì)導(dǎo)致系統(tǒng)性能下降[14]。針對(duì)Kafka 系統(tǒng)中的消費(fèi)者和分區(qū),文獻(xiàn)[15]和[16]分別提出消費(fèi)者/客戶端負(fù)載均衡方法和改進(jìn)型Partition 過(guò)載優(yōu)化,來(lái)解決吞吐速率下降、中央處理器(central processing unit,CPU)使用率過(guò)高等問(wèn)題。文獻(xiàn)[17]提出基于抽樣的自適應(yīng)調(diào)優(yōu)方法,通過(guò)優(yōu)化生產(chǎn)者個(gè)數(shù)、緩存空間大小、消息大小、分區(qū)數(shù)等系統(tǒng)參數(shù)來(lái)提升系統(tǒng)吞吐速率并降低時(shí)延。先前的研究大多致力于從消費(fèi)者、分區(qū)和系統(tǒng)參數(shù)的角度,在算法和系統(tǒng)內(nèi)部添加機(jī)制來(lái)進(jìn)行優(yōu)化,但卻往往忽略了生產(chǎn)者。而生產(chǎn)者節(jié)點(diǎn)一般同時(shí)擔(dān)任排序節(jié)點(diǎn)[18]、背書(shū)節(jié)點(diǎn)[18]和提交節(jié)點(diǎn)[19]的責(zé)任。因此生產(chǎn)者需要執(zhí)行的進(jìn)程十分復(fù)雜多樣,大量數(shù)據(jù)集中在生產(chǎn)者的緩存區(qū)[20]中是Kafka 系統(tǒng)性能吞吐速率下降、時(shí)延上升甚至出現(xiàn)宕機(jī)情況的主要原因。因此從生產(chǎn)者的角度進(jìn)行系統(tǒng)優(yōu)化也是研究的重點(diǎn)。

    長(zhǎng)短期記憶網(wǎng)絡(luò)(long short term memory,LSTM)模型[21]從本質(zhì)上講是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一種特定形式[22]。LSTM 模型以RNN 模型作為基礎(chǔ)模型,使用增加門(mén)限的方法來(lái)解決RNN 模型中的短期記憶信息持久性不夠高的問(wèn)題。時(shí)間序列[23]分析是將某種現(xiàn)象某一個(gè)統(tǒng)計(jì)指標(biāo)在不同時(shí)間上的各個(gè)數(shù)值,按時(shí)間先后順序排列而形成的序列,旨在預(yù)測(cè)未來(lái)事件發(fā)展的趨勢(shì)和規(guī)律。相比其他網(wǎng)絡(luò),LSTM 的優(yōu)勢(shì)包括:輸入及輸出屬于時(shí)序數(shù)據(jù),并要求全局化處理;輸入和輸出的元素級(jí)別對(duì)應(yīng)的時(shí)間跨度大;數(shù)據(jù)長(zhǎng)短適中。LSTM應(yīng)用的領(lǐng)域包括:文本生成、機(jī)器翻譯、語(yǔ)音識(shí)別、生成圖像描述、預(yù)測(cè)疾病、故障[24]和股票[25]等。

    本文結(jié)合區(qū)塊鏈節(jié)點(diǎn)的特點(diǎn),提出基于LSTM時(shí)間序列的系統(tǒng)管理方法,在不過(guò)多修改Kafka 算法內(nèi)部機(jī)制的條件下,使系統(tǒng)更加智能化。利用LSTM 時(shí)間序列模型可以勝任預(yù)測(cè)工作的特點(diǎn),根據(jù)系統(tǒng)之前接收到的交易量,預(yù)測(cè)下一時(shí)刻即將收到的交易量,動(dòng)態(tài)調(diào)整生產(chǎn)者的個(gè)數(shù),既可以解決吞吐速率下降、時(shí)延上升等性能問(wèn)題又不造成資源浪費(fèi),使系統(tǒng)資源利用處于相對(duì)合理區(qū)間。

    1 問(wèn)題建模

    本節(jié)首先對(duì)問(wèn)題及解決方案進(jìn)行分析建模,而后建立整體系統(tǒng)優(yōu)化模型。

    1.1 Kafka 模型

    目前常用的Kafka 系統(tǒng),以吞吐速率、時(shí)延、能耗、系統(tǒng)效率、使用率等指標(biāo)來(lái)衡量系統(tǒng)的性能和合理性。系統(tǒng)的總吞吐速率與生產(chǎn)者吞吐速率以及分區(qū)關(guān)系為

    sumt表示t時(shí)刻需要處理的總交易量:

    式中,Nat+Nbt+…+Nnt是t時(shí)刻各用戶向系統(tǒng)發(fā)送的交易量。

    其中,kt表示t時(shí)刻生產(chǎn)者數(shù)量,bm代表t時(shí)刻需要處理的單個(gè)消息大小,表示t時(shí)刻系統(tǒng)需要處理的消息總大小,Td表示時(shí)延。

    理想狀態(tài)下,每個(gè)生產(chǎn)者吞吐速率相等,由式(2)、(3)、(4)可得:

    生產(chǎn)者、消費(fèi)者、分區(qū)各占一部分系統(tǒng)存儲(chǔ)空間。一般理想狀態(tài)下,各生產(chǎn)者所占空間相等[25]。

    Ω代表機(jī)器(節(jié)點(diǎn))數(shù)量:

    一般情況下Ω≥kt>1,Cn表示副本數(shù)量,wt為權(quán)重系數(shù),Vmax表示生產(chǎn)者峰值生產(chǎn)速度。

    根據(jù)式(6),在理想系統(tǒng)狀態(tài)下,系統(tǒng)最大時(shí)延Td可表示為

    Et為每消耗單位能量處理的交易大小:

    其中,E為節(jié)點(diǎn)作為生產(chǎn)者時(shí),每秒消耗的能量。

    Mt為生產(chǎn)者系統(tǒng)使用率:

    Wt為系統(tǒng)效率:

    其中,rt為比例系數(shù),代表t時(shí)刻系統(tǒng)可承受交易量范圍和用戶發(fā)送總交易量范圍之比。

    1.2 LSTM 時(shí)間序列模型

    找到生產(chǎn)者個(gè)數(shù)kt、用戶發(fā)送交易量sumt與各項(xiàng)性能、能耗及系統(tǒng)使用情況的關(guān)系后,如何確定生產(chǎn)者個(gè)數(shù)尤為重要。構(gòu)建預(yù)測(cè)模型,如圖1 所示。

    模型學(xué)習(xí)先前用戶發(fā)送的交易量,預(yù)測(cè)t時(shí)刻各用戶發(fā)送的交易量和系統(tǒng)需要處理的總交易量sumt。

    LSTM 模型主要包含了遺忘門(mén)、輸入門(mén)、輸出門(mén)與1 個(gè)細(xì)胞單元。細(xì)胞單元狀態(tài)可以控制信息傳遞給下一時(shí)刻。時(shí)間序列模型流程示意圖如圖2 所示。

    圖中,ct是細(xì)胞單元,從下方輸入ft、it、ot分別為遺忘門(mén)、輸入門(mén)、輸出門(mén),用sigmoid 層表示。sumt為輸出,即預(yù)測(cè)到的交易總量。Nat-1,Nbt-1,…,Nnt-1為輸入,即上一時(shí)刻用戶發(fā)送交易量。ct-1為需要遺忘的對(duì)預(yù)測(cè)無(wú)用的數(shù)據(jù)。2 個(gè)tanh 層分別對(duì)應(yīng)細(xì)胞單元的輸入與輸出。

    1.3 LSTM 模型執(zhí)行步驟

    LSTM 結(jié)構(gòu)中使用了2 種激活函數(shù)[26],分別為sigmoid 函數(shù)與tanh 函數(shù),其表達(dá)式分別為

    第1 步?jīng)Q定遺忘細(xì)胞狀態(tài)中的哪些信息。

    遺忘門(mén)通過(guò)sigmoid 層來(lái)篩選,只有符合預(yù)期結(jié)果的信息可以通過(guò)細(xì)胞單元,根據(jù)上一時(shí)刻的輸出和當(dāng)前時(shí)刻的輸入產(chǎn)生一個(gè)0~1 之間的ft值,以此決定是否讓上一時(shí)刻學(xué)習(xí)到的用戶發(fā)送交易量信息通過(guò)或部分通過(guò),0 表示完全舍棄,1 表示完全保留。

    其中,ft為σ網(wǎng)絡(luò)激活層,sumt-1為預(yù)測(cè)到上一時(shí)刻輸出的交易總量,Nat-1,Nbt-1,…,Nnt-1為上一時(shí)刻輸入的各用戶發(fā)送交易量,Wf為遺忘門(mén)權(quán)重,bf為遺忘門(mén)偏執(zhí)量。

    第2 步產(chǎn)生需要更新的信息。

    第2 步為2 個(gè)部分,第1 部分中輸入門(mén)通過(guò)sigmoid 層決定哪些信息用來(lái)更新候選值,第2 部分生成新的候選值?ct,并評(píng)估其保存至細(xì)胞狀態(tài)的可能性。通過(guò)tanh 層來(lái)執(zhí)行本部分,對(duì)輸入端進(jìn)行激活,對(duì)細(xì)胞單元執(zhí)行更新操作,將ct-1更新為ct。

    其中,Wi、Wc為權(quán)重,bi、bc為偏執(zhí)量。

    對(duì)舊的細(xì)胞狀態(tài)進(jìn)行更新,通過(guò)遺忘門(mén)消除不需要的信息,然后得出候選值。

    第3 步?jīng)Q定模型輸出。

    通過(guò)sigmoid 層來(lái)得到一個(gè)初始輸出,而后縮放ct的值至-1~1 之間,再與得到的輸出進(jìn)行逐對(duì)相乘,得到最終的輸出。

    sigmoid 函數(shù)的輸出不考慮先前時(shí)刻學(xué)到的信息,tanh 函數(shù)對(duì)先前學(xué)到信息的壓縮處理,起穩(wěn)定數(shù)值作用,智能化系統(tǒng)整體模型如圖3 所示。

    本文構(gòu)建的生產(chǎn)者個(gè)數(shù)決策模型,學(xué)習(xí)前(t-1) s用戶發(fā)送交易的規(guī)律,通過(guò)時(shí)間序列模型LSTM 算法使用仍然適用于本文模型的sigmoid 函數(shù)與tanh函數(shù)完成預(yù)測(cè)第ts 用戶發(fā)送的交易量的工作,輸出下一時(shí)刻選定的生產(chǎn)者個(gè)數(shù),對(duì)生產(chǎn)者個(gè)數(shù)進(jìn)行動(dòng)態(tài)調(diào)整,在保證系統(tǒng)性能的情況下,達(dá)到降低能耗、合理利用系統(tǒng)資源的要求。

    2 仿真實(shí)驗(yàn)

    仿真環(huán)境建立在英特爾11th Gen Intel(R) Core(TM)i5-1155G7@2.50 GHz 處理器。機(jī)帶RAM 16.0 GB 64 位操作。軟件環(huán)境是在Win 10 操作系統(tǒng)下運(yùn)行Python 3.6、Matlab 2022 以及Jupyter Lab 平臺(tái)。

    分別設(shè)置模型學(xué)習(xí)率為0.01、0.05,并結(jié)合實(shí)際應(yīng)用中Kafka 系統(tǒng)一般接收到的交易量,將樣本數(shù)量設(shè)置為50 個(gè)、100 個(gè)、150 個(gè)進(jìn)行對(duì)比實(shí)驗(yàn)。

    進(jìn)行500 回合的對(duì)比實(shí)驗(yàn)訓(xùn)練時(shí),由圖4 中十字標(biāo)記曲線可知,當(dāng)學(xué)習(xí)率設(shè)定為0.05、樣本數(shù)量確定為100 個(gè)時(shí),系統(tǒng)誤差最小,最低可降到0.0124,收斂于0.002 左右。因此LSTM 模型學(xué)習(xí)率最終確定為0.05,樣本數(shù)量選定為100,如表1 所示。

    表1 LSTM 參數(shù)設(shè)置

    圖4 模型參數(shù)對(duì)比

    后續(xù)實(shí)驗(yàn)中,基于時(shí)間序列LSTM 算法的Kafka優(yōu)化方法設(shè)置詳細(xì)步驟如算法1 及圖5 所示。

    圖5 優(yōu)化方法實(shí)驗(yàn)設(shè)置

    交易數(shù)據(jù)集為隨機(jī)生成,總體處于1~100 個(gè),通過(guò)Excel 導(dǎo)入模型。模型參數(shù)設(shè)置如表2 所示。

    表2 模型參數(shù)設(shè)置

    時(shí)間序列模型執(zhí)行步驟如下所示。

    第2 節(jié)公式中n取1、2、3,分別設(shè)定3 個(gè)序列模型。Nat、Nbt、Nct分別對(duì)應(yīng)成員1、成員2、成員3在第ts 預(yù)測(cè)發(fā)送的交易量。通過(guò)總交易量所處區(qū)間,決定生產(chǎn)者個(gè)數(shù)。根據(jù)第2 節(jié)中公式可得LSTM時(shí)間序列模型輸出與Kafka 系統(tǒng)性能關(guān)系,如表3所示。

    表3 LSTM 輸出與Kafka 性能的關(guān)系

    使用MinMaxScaler 數(shù)據(jù)歸一化方法:

    其中,X.min(axis=0) 表示每列值的最小值組成的向量,同理X.max(axis=0) 表示每列值的最大值組成的向量。max 表示映射到區(qū)間的最大值,默認(rèn)為1。min 表示映射到區(qū)間的最小值,默認(rèn)為0。Xstd是標(biāo)準(zhǔn)化化結(jié)果,Xsvaled是歸一化結(jié)果。使用均方誤差(mean square error,MSE)作為誤差評(píng)價(jià)指標(biāo):

    式中,N為樣本數(shù)量,Yi是為真實(shí)值,為模型預(yù)測(cè)值。優(yōu)化器選擇適應(yīng)性矩估計(jì)(adaptive moment estimation,ADAM)的方法,對(duì)損失函數(shù)進(jìn)行優(yōu)化。

    2.1 LSTM 預(yù)測(cè)

    使用數(shù)據(jù)集分別進(jìn)行500、1000、3000、10 000 次訓(xùn)練。當(dāng)訓(xùn)練次數(shù)達(dá)到10 000 次時(shí),誤差率曲線在0.025 以下收斂,最小可以達(dá)到(8.2807e)-4,損失函數(shù)如圖6 所示。

    圖6 誤差曲線

    訓(xùn)練后得到預(yù)測(cè)下一時(shí)刻各用戶發(fā)送的交易量,并根據(jù)交易總量決定k取值。結(jié)果如圖7~9 所示,在折線圖上方顯示系統(tǒng)經(jīng)過(guò)預(yù)測(cè)后選定的生產(chǎn)者個(gè)數(shù)。

    圖8 預(yù)測(cè)圖2

    圖9 預(yù)測(cè)圖3

    實(shí)驗(yàn)中會(huì)出現(xiàn)k=1、k=2 和k=3 這3 種結(jié)果。圖中顯示選定的k值,數(shù)據(jù)中包含需要通過(guò)遺忘門(mén)消除的對(duì)預(yù)測(cè)無(wú)用數(shù)據(jù)。用戶1數(shù)據(jù)波動(dòng)大,分布不均勻;用戶2 數(shù)據(jù)基本均勻分布在小范圍內(nèi);用戶3 數(shù)據(jù)波動(dòng)處于用戶1 與用戶2 之間,分布基本均勻。通過(guò)圖7~9 可以看出,對(duì)預(yù)測(cè)結(jié)果影響最大的是用戶1,用戶2 與用戶3 對(duì)結(jié)果影響不明顯。

    2.2 性能對(duì)比驗(yàn)證

    根據(jù)前述公式及表1 可知時(shí)間序列模型預(yù)測(cè)的消息總量、輸出的生產(chǎn)者個(gè)數(shù)和Kafka 系統(tǒng)性能的關(guān)系,根據(jù)時(shí)間序列預(yù)測(cè)結(jié)果及輸出進(jìn)行Kafka 系統(tǒng)性能仿真實(shí)驗(yàn)。仿真實(shí)驗(yàn)按照預(yù)測(cè)模型,為k賦予了1、2、3 取值,為系統(tǒng)吞吐速率,Td為時(shí)延。

    設(shè)定數(shù)據(jù)的壓縮比c設(shè)為0.8,區(qū)塊鏈中使用Kafka 共識(shí)的機(jī)器數(shù)量Ω設(shè)為5,生產(chǎn)者節(jié)點(diǎn)的個(gè)數(shù)k分別取1、2、3。副本數(shù)量Cn設(shè)為2,權(quán)重系數(shù)wt設(shè)為2,系統(tǒng)生產(chǎn)者緩存區(qū)內(nèi)需要處理的交易總大小設(shè)為0~110 kB,sumt為預(yù)測(cè)到的總交易量。處理交易量與時(shí)延的關(guān)系,如圖10 所示。

    圖10 交易量與時(shí)延的關(guān)系

    由圖10 可知,隨著生產(chǎn)者同時(shí)需要處理的交易量的提升,系統(tǒng)時(shí)延也在逐步提高。通過(guò)使用2 種激活函數(shù)的LSTM 模型使生產(chǎn)者個(gè)數(shù)的增加,可以延緩系統(tǒng)時(shí)延的提高。當(dāng)緩存區(qū)內(nèi)需處理交易大小超過(guò)緩存區(qū)最大容量,引發(fā)系統(tǒng)宕機(jī),時(shí)延圖像停止變化。隨著生產(chǎn)者個(gè)數(shù)的提升,系統(tǒng)承受能力顯著上升。

    設(shè)定分區(qū)數(shù)P為20,k分別取1、2、3,數(shù)據(jù)壓縮比c設(shè)為0.8,每個(gè)生產(chǎn)者最大緩存空間M設(shè)為32 kB。需要處理的交易總大小設(shè)為0~110 kB,得出生產(chǎn)者緩存區(qū)處理交易量和系統(tǒng)吞吐速率的關(guān)系,如圖11 所示。

    圖11 交易量與吞吐速率關(guān)系圖

    由圖11 可知,使用包含2 種激活函數(shù)的LSTM模型后,吞吐速率隨著生產(chǎn)者個(gè)數(shù)增加而增加。當(dāng)交易量小于最大緩存容量時(shí),各曲線變化不大,只有輕微的波動(dòng)。當(dāng)需要處理的交易量大于生產(chǎn)者緩存空間容量時(shí),引發(fā)系統(tǒng)宕機(jī),吞吐速率歸零。隨著生產(chǎn)者個(gè)數(shù)的增多,最大容量提高,系統(tǒng)承受能力顯著上升。

    使用LSTM 時(shí)間序列模型進(jìn)行優(yōu)化后,根據(jù)預(yù)測(cè)到的交易量增加了生產(chǎn)者個(gè)數(shù)。由圖11、圖12對(duì)比實(shí)驗(yàn)可知,提升生產(chǎn)者個(gè)數(shù)確實(shí)可以提升系統(tǒng)性能,sigmoid 函數(shù)與tanh 函數(shù)2 種激活函數(shù)同樣適用于本文模型,優(yōu)化方向正確、方法有效。

    圖12 時(shí)延對(duì)比

    2.3 算法對(duì)比實(shí)驗(yàn)

    為驗(yàn)證本文方法性能,分別采取Kafka 原算法、本文方法、Kafka 中改進(jìn)型Partition 過(guò)載優(yōu)化算法[16]和基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法[17]4 種方法相比較。

    設(shè)Kafka 原算法系統(tǒng)生產(chǎn)者個(gè)數(shù)k=1,每個(gè)交易大小設(shè)為1.6 kB,交易量范圍為0~150 個(gè),副本數(shù)量Cn設(shè)為2,權(quán)重系數(shù)wt設(shè)為2,設(shè)定分區(qū)數(shù)P為20,數(shù)據(jù)壓縮比c設(shè)為0.8,每個(gè)生產(chǎn)者最大緩存空間M設(shè)為32 kB。Kafka 中改進(jìn)型Partition 過(guò)載優(yōu)化算法通過(guò)優(yōu)化分區(qū)數(shù)量來(lái)提升吞吐速率,因此該方法分區(qū)數(shù)量P1設(shè)為25,生產(chǎn)者個(gè)數(shù)k=1,其余參數(shù)與前文一致。

    根據(jù)時(shí)間序列預(yù)測(cè)模型設(shè)定為

    如圖12 所示,隨著交易量增加,Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法的時(shí)延曲線在本圖中保持重合,且上升較快、系統(tǒng)承受力差,分區(qū)數(shù)提升未對(duì)時(shí)延產(chǎn)生明顯影響?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法將生者個(gè)數(shù)設(shè)定為3 個(gè)時(shí),系統(tǒng)時(shí)延低、承受能力強(qiáng)。本文方法通過(guò)預(yù)測(cè)接收到的交易量,動(dòng)態(tài)生產(chǎn)者個(gè)數(shù),隨著接受到的交易量增多而增加生產(chǎn)者個(gè)數(shù),可以有效降低時(shí)延且系統(tǒng)承受力與基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法持平。

    如圖13 所示,Kafka 原算法的吞吐速率較低、系統(tǒng)承受力差。改進(jìn)型Partition 過(guò)載優(yōu)化算法在一般情況下不對(duì)系統(tǒng)配置進(jìn)行修改,僅在系統(tǒng)檢測(cè)到即將過(guò)載時(shí),通過(guò)提升分區(qū)數(shù)小幅提高了最大吞吐速率和系統(tǒng)承受力?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法將生者個(gè)數(shù)設(shè)定為3 個(gè)時(shí),吞吐速率明顯提升。本文方法通過(guò)預(yù)測(cè)接收到的交易量,隨著接受到的交易量增多而增加生產(chǎn)者個(gè)數(shù),可以有效提高吞吐速率和系統(tǒng)承受力。本文方法最高吞吐速率與基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法持平。

    圖13 系統(tǒng)最大吞吐速率對(duì)比

    根據(jù)式(9)及圖14 中數(shù)據(jù)計(jì)算k不同取值時(shí)的平均吞吐速率。當(dāng)k=1 時(shí)平均吞吐速率為52 kB/s,k=2 時(shí)平均吞吐速率為108 kB/s,k=3 時(shí)平均吞吐速率為151 kB/s,改進(jìn)型Partition 過(guò)載優(yōu)化算法最大吞吐速率為65 kB/s。單個(gè)生產(chǎn)者緩存空間仍設(shè)為32 kB。

    圖14 生產(chǎn)者平均剩余緩存空間

    由圖14 可知,根據(jù)預(yù)測(cè)下一時(shí)刻交易量,調(diào)整生產(chǎn)者個(gè)數(shù)以及提升分區(qū)數(shù),均可以通過(guò)提升吞吐速率有效避免緩存空間過(guò)低和耗盡的情況。當(dāng)預(yù)測(cè)到下一時(shí)刻交易過(guò)多可能導(dǎo)致緩存空間即將耗盡時(shí),提升生產(chǎn)者個(gè)數(shù),對(duì)交易進(jìn)行分流,防止消息集中在某一個(gè)節(jié)點(diǎn),生產(chǎn)者個(gè)數(shù)越多,緩存空間剩余越多。

    在實(shí)際使用中,系統(tǒng)能量損耗是必須考慮的方面,提升生產(chǎn)者個(gè)數(shù)固然可以提高系統(tǒng)性能,但需要處理的交易量較少時(shí),多個(gè)節(jié)點(diǎn)執(zhí)行生產(chǎn)者功能會(huì)造成能源浪費(fèi)。設(shè)每臺(tái)機(jī)器作為生產(chǎn)者時(shí),每秒消耗能量65 J,每個(gè)交易大小設(shè)為1.6 kB。測(cè)試各方法所在系統(tǒng)的可接受用戶發(fā)送消息量和消耗單位能量可處理的交易大小情況。

    由圖15 可知,原Kafka 算法在接收到的交易量較少時(shí),消耗單位能量所處理的交易大小與本文方法持平,但其交易承受范圍為0~52 個(gè)。改進(jìn)型Partition 過(guò)載優(yōu)化算法消耗單位能量所處理的交易大小先持平而后略高于于本方法,但其交易承受范圍為0~60 區(qū)間。基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法把生產(chǎn)者個(gè)數(shù)設(shè)定為3 個(gè),交易量承受范圍為0~150 個(gè)。在接受交易量較少時(shí),消耗單位能量處理的交易量少,隨著接受的交易量提升而提高,在實(shí)際應(yīng)用中會(huì)造成大量的能源浪費(fèi)。本文方法動(dòng)態(tài)調(diào)整生產(chǎn)者個(gè)數(shù),交易量承受范圍也為0~150 個(gè),在交易量較少時(shí)本文方法高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,交易量較大時(shí)與其持平,避免出現(xiàn)消耗能量高但處理交易量低的情況。

    圖15 消耗單位能量處理的交易大小

    由圖16 可知,原Kafka 算法在接收到的交易量較少時(shí),使用率與本文方法持平,但其無(wú)法承受較大交易量的情況。改進(jìn)型Partition 過(guò)載優(yōu)化算法接收到的交易量較少時(shí),使用率略低于本文方法,其系統(tǒng)承受能力較原算法有所提高但仍無(wú)法承受較大交易量的情況。基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)算法在發(fā)送交易量較少時(shí),使用率遠(yuǎn)低于本算法。處理交易量較高時(shí),效率與本文算法持平。當(dāng)本文方法增加生產(chǎn)者個(gè)數(shù)時(shí),系統(tǒng)使用率曲線先快速下降,而后隨著交易量上升逐步提升。

    圖16 系統(tǒng)使用率

    由圖17 可知實(shí)驗(yàn)中各方法在不同交易量情況下的能耗。Kafka 原算法可承受的交易量為0~52個(gè),因此交易量大于52 時(shí),能耗柱狀圖歸零。改進(jìn)型Partition 過(guò)載優(yōu)化算法,可承受的交易量為0~60,因此交易量大于60 時(shí),能耗柱狀圖歸零。

    圖17 系統(tǒng)能耗

    由圖18 可知,Kafka 原算法其系統(tǒng)使用率與能量之比最高、能耗低,但只能應(yīng)對(duì)交易量較少的情況。改進(jìn)型Partition 過(guò)載優(yōu)化算法可處理的交易量情況優(yōu)于原算法,但其承受力遠(yuǎn)低于本文算法?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法,將生產(chǎn)者個(gè)數(shù)設(shè)定為3,可以應(yīng)對(duì)各種交易量情況,但系統(tǒng)使用率與能量之比過(guò)低,在系統(tǒng)使用率低、處理較少交易時(shí),依舊消耗大量能量。本文方法動(dòng)態(tài)調(diào)整生產(chǎn)者個(gè)數(shù),在交易量較少時(shí)系統(tǒng)使用率與能量之比較高,當(dāng)預(yù)測(cè)到交易量上升時(shí)增加生產(chǎn)者個(gè)數(shù)后,系統(tǒng)使用率與能量之比有所降低,但可以應(yīng)對(duì)各種交易量情況。在交易量處于0~99 區(qū)間時(shí)系統(tǒng)使用率與能量之比高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,在交易量處于100~150 區(qū)間時(shí)2 種方法持平。

    圖18 系統(tǒng)使用率與能耗之比

    系統(tǒng)效率用于衡量系統(tǒng)對(duì)性能和能耗的兼顧情況。系統(tǒng)效率越高,意味著系統(tǒng)對(duì)兩者的兼顧情況越好。根據(jù)式(13),計(jì)算各方法系統(tǒng)效率。

    由圖19 可知根據(jù)不同生產(chǎn)者個(gè)數(shù)情況下平均吞吐速率和能耗計(jì)算結(jié)果。從實(shí)驗(yàn)中各種交易量情況進(jìn)行整體分析,如圖17 最右側(cè)柱狀圖所示,Kafka原算法系統(tǒng)效率為27.7%,改進(jìn)型Partition 過(guò)載優(yōu)化算法系統(tǒng)效率為39.96%,本文算法3 種情況平均為80.32%,基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法為77.4%。原算法的能耗雖然低,但其吞吐速率和系統(tǒng)承載力同樣較低,可接受的交易量范圍只在0~52 之間。改進(jìn)型Partition 過(guò)載優(yōu)化算法由于只通過(guò)提升分區(qū)數(shù)而提升吞吐速率,并未增加生產(chǎn)者個(gè)數(shù),因此其系統(tǒng)效率在系統(tǒng)可承受交易量范圍內(nèi)極高,但其只能處理0~60 個(gè)交易的情況,系統(tǒng)承載力遠(yuǎn)低于本文算法?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法,在將生產(chǎn)者個(gè)數(shù)設(shè)定為3 后,雖然吞吐速率明顯提升,但其能耗也大幅度增加,交易量較少時(shí)造成資源浪費(fèi)。本文方法系統(tǒng)效率最高,系統(tǒng)承載力強(qiáng)且能耗較低。

    圖19 系統(tǒng)效率

    實(shí)驗(yàn)中,式(10)可化簡(jiǎn)為

    設(shè)定t時(shí)刻系統(tǒng)開(kāi)啟1 個(gè)生產(chǎn)者可以處理接收到的全部交易(即1 個(gè)生產(chǎn)者t時(shí)刻的吞吐速率和緩存空間大小之和大于等于交易總大小),但系統(tǒng)中多于1 個(gè)生產(chǎn)者的情況或類似情況會(huì)造成資源浪費(fèi)。根據(jù)式(32)和對(duì)比實(shí)驗(yàn)中交易大小、交易量、緩存空間大小、吞吐速率等數(shù)據(jù)進(jìn)行計(jì)算。

    由圖20 可知,Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法不存在資源浪費(fèi)情況,但系統(tǒng)承受力低,可承受交易個(gè)數(shù)范圍分別為0~52、0~60?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法將生產(chǎn)者個(gè)數(shù)設(shè)定為3,可以提高系統(tǒng)承受力,可接受交易量為0~150,但資源浪費(fèi)比率高達(dá)71.3%。本文方法系統(tǒng)可承受交易量為0~150,且資源浪費(fèi)比率遠(yuǎn)低于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,3 種情況平均為6.66%。

    圖20 系統(tǒng)產(chǎn)生資源浪費(fèi)情況比率

    2.4 實(shí)驗(yàn)分析

    本文方法可以在面對(duì)不同交易量情況下,智能化動(dòng)態(tài)調(diào)整生產(chǎn)者個(gè)數(shù),可將生產(chǎn)者個(gè)數(shù)由傳統(tǒng)算法的1 個(gè)提升為2、3 個(gè),使各項(xiàng)指標(biāo)得到提升,綜合評(píng)價(jià)情況達(dá)到最優(yōu)。實(shí)驗(yàn)中,Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,其系統(tǒng)可承載交易量分別為0~52 個(gè)、0~60 個(gè)、0~150 個(gè)、0~150 個(gè),意味著4種算法分別在接收到交易個(gè)數(shù)為52、60、150、150 時(shí)系統(tǒng)使用率趨近100%,本文算法系統(tǒng)承載力大幅提高。實(shí)驗(yàn)中各方法最大吞吐速率分別為52 kB/s、65 kB/s、151 kB/s、151 kB/s,本文方法將吞吐速率提升近3 倍,時(shí)延降低了2~3 倍。Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法消耗單位能量所處理的交易最大分別為1.28 kB、1.23 kB、1.23 kB、1.476 kB,本文方法在大幅提升系統(tǒng)承載力的基礎(chǔ)上,消耗單位能量處理交易量與原算法和改進(jìn)型Partition 過(guò)載優(yōu)化算法基本持平。且由圖15 可知,本文算法消耗單位能量處理交易量在絕大多數(shù)情況下高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法。由于提升生產(chǎn)者個(gè)數(shù),因此系統(tǒng)能耗會(huì)出現(xiàn)提升,Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法系統(tǒng)平均能耗分別為65 J、65 J、130 J、195 J。本文算法在系統(tǒng)能耗指標(biāo)方面并未達(dá)到最低,但由于Kafka 原算法和改進(jìn)型Partition 過(guò)載優(yōu)化算法能耗雖低,但其系統(tǒng)承受力同樣低。且通過(guò)系統(tǒng)使用率與能耗之比可知,Kafka 原算法、改進(jìn)型Partition 過(guò)載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法系統(tǒng)使用率與能耗之比最高分別為1.538、1.538、1.453、0.497?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法存在嚴(yán)重資源、能源浪費(fèi)情況,因此需要結(jié)合系統(tǒng)效率做更加全面的評(píng)價(jià)。通過(guò)系統(tǒng)效率可知,本文方法系統(tǒng)效率為80.32%,相比于原算法的27.7% 提升了56.62%,比改進(jìn)型Partition 過(guò)載優(yōu)化算法的39.96%提升了40.63%,比基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法的77.4%提升了2.92%。本文方法資源浪費(fèi)比率為6.66%,優(yōu)于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法的71.3%,很好地兼顧了性能和能耗。因此綜合性能、能耗及智能化考量,本文算法優(yōu)于Kafka 原算法、Kafka 中改進(jìn)型Partition 過(guò)載優(yōu)化算法和基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法。

    3 結(jié)論

    Kafka 系統(tǒng)在接受大量數(shù)據(jù)時(shí),易產(chǎn)生數(shù)據(jù)傾斜的情況,從而導(dǎo)致性能下降的問(wèn)題。本文提出了一種基于時(shí)間序列模型的智能化管理方法解決了上述問(wèn)題。通過(guò)學(xué)習(xí)過(guò)往Kafka 系統(tǒng)生產(chǎn)者接收到的交易量,預(yù)測(cè)下一時(shí)刻可能會(huì)面臨的交易總量,動(dòng)態(tài)調(diào)整作為生產(chǎn)者的節(jié)點(diǎn)數(shù)量,進(jìn)而減少大量數(shù)據(jù)集中在少數(shù)節(jié)點(diǎn)的情況。實(shí)驗(yàn)證明,提升生產(chǎn)者個(gè)數(shù)可以在吞吐速率和時(shí)延方面大幅度提升系統(tǒng)性能,預(yù)測(cè)機(jī)制可以根據(jù)交易量靈活調(diào)整生產(chǎn)者個(gè)數(shù),避免出現(xiàn)在低交易量情況下多個(gè)生產(chǎn)者運(yùn)行,而造成能耗過(guò)高的情況,同時(shí)更加合理地利用系統(tǒng)資源,提高系統(tǒng)效率與合理性。本文方法為未來(lái)共識(shí)算法的優(yōu)化提出新的思考,使針對(duì)Kafka 系統(tǒng)的優(yōu)化不再停留于修改配置參數(shù)層面,而進(jìn)入到使整個(gè)系統(tǒng)更加智能的全面優(yōu)化階段。為Kafka 共識(shí)算法在區(qū)塊鏈和其他領(lǐng)域中的應(yīng)用提供新的思路和參考,使其可以更好地與大數(shù)據(jù)、物聯(lián)網(wǎng)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域協(xié)作,更全面地滿足互聯(lián)網(wǎng)時(shí)代對(duì)數(shù)據(jù)安全更加豐富且多元化的需求。

    猜你喜歡
    交易量生產(chǎn)者個(gè)數(shù)
    1月巴西生產(chǎn)者價(jià)格指數(shù)上漲3.92%
    怎樣數(shù)出小正方體的個(gè)數(shù)
    等腰三角形個(gè)數(shù)探索
    怎樣數(shù)出小木塊的個(gè)數(shù)
    2019德國(guó)IF設(shè)計(jì)大獎(jiǎng)
    怎樣數(shù)出小正方體的個(gè)數(shù)
    家禽福利的未來(lái):生產(chǎn)者能期待什么?
    一場(chǎng)大風(fēng)帶給生產(chǎn)者的思考
    大中華區(qū)私募股權(quán)
    开江县| 界首市| 基隆市| 水城县| 阿巴嘎旗| 三河市| 昭觉县| 隆子县| 彰化市| 灵台县| 龙南县| 淅川县| 耒阳市| 闽侯县| 土默特左旗| 屏南县| 白朗县| 英吉沙县| SHOW| 安仁县| 寻甸| 资兴市| 宜宾市| 金溪县| 科尔| 嵩明县| 东台市| 忻州市| 永仁县| 东平县| 青神县| 贵阳市| 屏山县| 辉县市| 哈密市| 武夷山市| 洪泽县| 新沂市| 武邑县| 靖江市| 湾仔区|