主权项 |
一种IaaS云系统运行速率动态控制方法,其特征在于包括以下步骤:步骤1、收集IaaS云系统主机的存量任务时间信息:收集k个已经完成的任务在IaaS云系统主机上的执行时间序列ct1,dt2,...dtk和仍在IaaS云系统主机上执行的任务已用的执行时间序列et1,et2....etm,其中m为仍在执行的任务的数量,k和m均为正整数;步骤2、预测完成任务的执行时间:设定已经完成的任务依次在IaaS云系统主机上的执行时间序列中,剔除了异常值干扰后的对数步长平均增量为loinc;计算1olnc=mean{inci,j|0<i<j≤k,yc(i,j)=0}得到已经完成的任务依次在IaaS云系统主机上的执行时间序列中的剔除了异常值干扰的对数步长平均增量;所述yc(i,j)为判断inci,j是否是异常点的函数,mean为集合求算数平均值的操作,inci,j表示序列中第和个记录值之间形成的对数步长等效增量,所述i和j均为正整数; <mrow> <mi>in</mi> <msub> <mi>c</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>ct</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>ct</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>log</mi> <mrow> <mo>(</mo> <mi>j</mi> <mo>-</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow> <mrow> <mi>yc</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mn>1</mn> <mi>if</mi> <mfrac> <mrow> <mo>|</mo> <mi>in</mi> <msub> <mi>c</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> </mrow> <mi>mn</mi> </mfrac> <mo>></mo> <mi>a</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mo>|</mo> <mi>in</mi> <msub> <mi>c</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> <mo>></mo> <mi>max</mi> <mo>{</mo> <mo>|</mo> <mi>in</mi> <msub> <mi>c</mi> <mrow> <mi>t</mi> <mo>,</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>|</mo> <mo>|</mo> <mi>i</mi> <mo>≤</mo> <mi>t</mi> <mo>≤</mo> <mi>j</mi> <mo>}</mo> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> <mi>else</mi> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>其中a为给定的参数,0.1≤a≤0.5;mn取值为:mn=mean{|incu,v||0<u<v≤k};设定完成任务的执行时间为nxt:计算 <mrow> <mi>nxt</mi> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mi>mean</mi> <mo>{</mo> <mi>c</mi> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>loinc</mi> <mo>×</mo> <msup> <mi>e</mi> <mrow> <mi>k</mi> <mo>-</mo> <mi>i</mi> </mrow> </msup> <mo>|</mo> <mn>0</mn> <mo><</mo> <mi>i</mi> <mo>≤</mo> <mi>k</mi> <mo>}</mo> <mi>if</mi> <mrow> <mo>(</mo> <mi>loinc</mi> <mo>+</mo> <msub> <mi>ct</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>></mo> <mi>max</mi> <mo>{</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>|</mo> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> <mo>}</mo> </mtd> </mtr> <mtr> <mtd> <mi>min</mi> <mo>{</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>|</mo> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> <mo>}</mo> <mo>+</mo> <munder> <mi>Σ</mi> <mrow> <mn>0</mn> <mo><</mo> <mi>i</mi> <mo>≤</mo> <mi>k</mi> <mo>,</mo> <mrow> <mo>(</mo> <msub> <mi>ct</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>loinc</mi> <mo>×</mo> <msup> <mi>e</mi> <mrow> <mi>k</mi> <mo>-</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msup> <mo>)</mo> </mrow> <mo><</mo> <mi>min</mi> <mo>{</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>|</mo> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> <mo>}</mo> </mrow> </munder> <msub> <mi>ct</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>loinc</mi> <mo>×</mo> <msup> <mi>e</mi> <mrow> <mi>k</mi> <mo>-</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msup> </mtd> </mtr> </mtable> </mfenced> </mrow>得到完成下一个任务的执行时间;步骤3、计算动态速率扩展控制量和控制等待时间:所述计算动态速率扩展控制量按以下步骤进行:设定未来负载缺口值为qkz,计算 <mrow> <mi>qkz</mi> <mo>=</mo> <munder> <mi>Σ</mi> <mrow> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> <mo>,</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>></mo> <mi>nxt</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>-</mo> <mi>nxt</mi> <mo>)</mo> </mrow> </mrow>得到未来负载缺口值;读取IaaS云系统主机的处理器当前所处的速度等级L和该速度等级对应的等效执行率exe(L),设IaaS云系统主机拥有n个处理器,其最高的速度等级为第g级,L、n和g均为正整数;设定动态速率扩展控制量为kzl,计算 <mrow> <mi>kzl</mi> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mo>-</mo> <mn>1</mn> <mi>ifqkz</mi> <mo>=</mo> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mi>min</mi> <mo>{</mo> <mi>i</mi> <mo>|</mo> <mi>n</mi> <mo>≥</mo> <mfrac> <mi>qkz</mi> <mrow> <mi>exe</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>exe</mi> <msup> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>′</mo> </msup> </mrow> </mfrac> <mn>0</mn> <mo>≤</mo> <mi>i</mi> <mo>≤</mo> <mi>g</mi> <mo>-</mo> <mi>l</mi> <mo>}</mo> <mi>else</mi> </mtd> </mtr> </mtable> </mfenced> </mrow>得到动态速率扩展控制量;所述计算控制等待时间按以下步骤执行:根据完成下一个任务的执行时间和仍在IaaS云系统主机上执行的任务已用的执行时间序列决定下一次控制的等待时间,设定控制的等待时间为dsj;计算 <mrow> <mi>dsj</mi> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mi>wcif</mi> <munder> <mi>Σ</mi> <mrow> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>-</mo> <mi>nxt</mi> <mo>)</mo> </mrow> <mo><</mo> <mn>0</mn> <mi>or</mi> <munder> <mi>Σ</mi> <mrow> <mn>0</mn> <mo><</mo> <mi>j</mi> <mo>≤</mo> <mi>m</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>et</mi> <mi>j</mi> </msub> <mo>-</mo> <mi>nxt</mi> <mo>)</mo> </mrow> <mo>></mo> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mi>β</mi> <mo>×</mo> <mi>wcelse</mi> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> </mrow>得到下一次控制的等待时间;wc为系统初始给出的控制间隔时间,wc>0,1<β<10;步骤4、IaaS云系统主机根据所述控制的等待时间dsj和动态速率扩展控制量kzl,在控制的等待时间段内对IaaS云系统主机的运行速率进行控制。 |