发明名称 一种基于混合优化的电力通信网络应用服务器过载控制方法
摘要 本发明一种基于混合优化的电力通信网络应用服务器过载控制方法,属于电力通信网络技术领域,本发明通过建立控制速率与能效之间的关系函数,以过载控制为约束条件,同时考虑应用服务器的过载控制与能效问题,构建能效的最优化过载控制模型;利用混合粒子群算法和遗传算法进行过载控制,粒子群算法搜索效率高,经过较少代数进化就能收敛到极值解附近,而运用模拟退火策略对粒子的位置做更新限制,使粒子跳出局部最优,增大搜索范围,摆脱早熟现象,最后用适用度函数进行个体评估,在此基础上进行遗传操作,得到精确的最优解,利用本发明可以有效地对电力通信网络中应用服务器进行过载控制。
申请公布号 CN103580922B 申请公布日期 2016.08.17
申请号 CN201310552728.0 申请日期 2013.11.08
申请人 国家电网公司;国网辽宁省电力有限公司;国网辽宁省电力有限公司本溪供电公司;辽宁邮电规划设计院有限公司;辽宁省医疗器械检验所 发明人 孟凡博;金鑫;赵宏昊;李跃华;魏本宏;王芝茗;葛维春;赵庆杞;庞东辰;苏宗昱;姜日敏;林志超;齐智刚;刘杨
分类号 H04L12/24(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 沈阳东大知识产权代理有限公司 21109 代理人 梁焱
主权项 一种基于混合优化的电力通信网络应用服务器过载控制方法,其特征在于,包括以下步骤:步骤1、设置采样间隔,根据采样间隔和随机系数,确定实际采样间距,并在该实际采样间距内检测周期内业务数量、不同业务的到达速率和处理速率,获得CPU的利用率,并根据服务缓存空间的空闲空间,获得服务缓存空间利用率;将采样间隔与随机系数相乘获得实际采样间距,所述的随机系数取值范围为0~1;步骤2、判断应用服务器是否过载,即判断CPU的利用率是否大于根据需求所设定的门限值,同时判断服务缓存空间利用率是否大于根据需求所设定的门限值,若上述两者同时大于门限值,则应用服务器过载,停止接收下一周期的业务并执行步骤3,否则,将采样间隔加一并返回执行步骤1;步骤3、将所有业务根据设定的优先级进行排序,并获得排序后的各业务的CPU利用率,在所有业务中,选择出CPU利用率大于各自CPU利用率阈值的业务,作为被控的不同优先级过载业务;步骤4、根据应用服务器处理全部业务所消耗的总能耗,结合不同业务控制速率的限制条件,建立能效优化模型,具体为:步骤4‑1、根据服务器的最大业务处理速率和服务器基本能耗所占的比例,建立能耗与控制速率之间的关系;具体公式如下:<maths num="0001"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>S</mi><mo>=</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>&delta;</mi><mi>c</mi><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&delta;</mi><mo>)</mo></mrow><mi>S</mi></mrow></mtd><mtd><mrow><mn>0</mn><mo>&lt;</mo><mi>S</mi><mo>&lt;</mo><mi>c</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000935924850000011.GIF" wi="1370" he="138" /></maths>其中,c表示服务器容量,S表示控制业务速率,δ用来描述服务器的基本能耗所占的比例;步骤4‑2、根据过载业务总的控制速率和应用服务器处理全部业务所消耗的总能耗,建立能效与不同优先级业务控制速率之间的关系;具体公式如下:<maths num="0002"><math><![CDATA[<mrow><mi>E</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>S</mi><mrow><mi>f</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000935924850000012.GIF" wi="1066" he="121" /></maths>由(12)~(13)可知,<img file="FDA0000935924850000013.GIF" wi="555" he="97" />O表示过载业务的集合,C表示过载业务的总到达速率;步骤4‑3、设定在过载控制过程中的限定条件,包括不同优先级业务的CPU利用率小于其CPU利用率阈值、不同优先级业务的控制速率均大于零和两个不同优先级业务控制速率比例在设置范围内;所述的两个不同优先级业务控制速率比例在设置范围内,即<img file="FDA0000935924850000014.GIF" wi="729" he="130" />步骤4‑4、结合过载控制过程中的限定条件建立能效与不同优先级业务控制速率之间的关系;具体为建立能效优化模型,公式如下:<maths num="0003"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>S</mi><mi>i</mi></msub><mo>=</mo><mi>arg</mi><mi> </mi><mi>max</mi><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mrow><mi>s</mi><mo>.</mo><mi>t</mi><mo>.</mo></mrow></mtd><mtd><mrow><mfrac><msub><mi>S</mi><mi>i</mi></msub><msub><mi>&phi;</mi><mi>i</mi></msub></mfrac><mo>&le;</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><mi>i</mi><mo>&Element;</mo><mi>O</mi></mrow></mtd></mtr></mtable></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&gamma;</mi><mo>)</mo><mfrac><msub><mi>n</mi><mi>i</mi></msub><msub><mi>n</mi><mi>j</mi></msub></mfrac><mo>&lt;</mo><mfrac><msub><mi>S</mi><mi>i</mi></msub><msub><mi>S</mi><mi>j</mi></msub></mfrac><mo>&lt;</mo><mo>(</mo><mn>1</mn><mo>+</mo><mi>&gamma;</mi><mo>)</mo><mfrac><msub><mi>n</mi><mi>i</mi></msub><msub><mi>n</mi><mi>j</mi></msub></mfrac><mo>,</mo><mi>&gamma;</mi><mo>&Element;</mo><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>S</mi><mi>i</mi></msub><mo>&gt;</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000935924850000021.GIF" wi="1112" he="463" /></maths>其中,S<sub>i</sub>表示能效最大时优先级为i的过载业务的控制速率;E(S<sub>i</sub>)表示优先级为i的过载业务的能效,φ<sub>i</sub>表示应用服务器对优先级为i的过载业务的处理速率,u<sub>i</sub>表示优先级为i的业务的CPU利用率的阈值,O表示过载业务的集合,S<sub>j</sub>表示优先级为j的业务的控制速率,n<sub>i</sub>表示优先级为i的业务占过载业务总数的百分比,n<sub>j</sub>表示优先级为j的业务占过载业务总数的百分比;步骤5、采用混合粒子群算法获得能效最大时的不同优先级过载业务控制速率;具体步骤如下:步骤5‑1、根据混合粒子群算法对不同优先级过载业务的控制速率进行初始化,包括设置M组不同优先级过载业务的控制速率,设置M组不同优先级过载业务的控制速率变化大小,随机生成初始化控制速率矩阵S<sub>MN</sub>及速率变化率矩阵V<sub>MN</sub>:<maths num="0004"><math><![CDATA[<mrow><msub><mi>S</mi><mrow><mi>M</mi><mi>N</mi></mrow></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>s</mi><mn>11</mn></msub></mtd><mtd><msub><mi>s</mi><mn>12</mn></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>s</mi><mrow><mn>1</mn><mi>N</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>s</mi><mn>21</mn></msub></mtd><mtd><msub><mi>s</mi><mn>22</mn></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>s</mi><mrow><mn>2</mn><mi>N</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd></mtr><mtr><mtd><msub><mi>s</mi><mrow><mi>M</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>s</mi><mrow><mi>M</mi><mn>2</mn></mrow></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>s</mi><mrow><mi>M</mi><mi>N</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000935924850000022.GIF" wi="1063" he="293" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mi>V</mi><mrow><mi>M</mi><mi>N</mi></mrow></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>v</mi><mn>11</mn></msub></mtd><mtd><msub><mi>v</mi><mn>12</mn></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>v</mi><mrow><mn>1</mn><mi>N</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mn>21</mn></msub></mtd><mtd><msub><mi>v</mi><mn>22</mn></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>v</mi><mrow><mn>2</mn><mi>N</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd><mtd><mn>...</mn></mtd></mtr><mtr><mtd><msub><mi>v</mi><mrow><mi>M</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>v</mi><mrow><mi>M</mi><mn>2</mn></mrow></msub></mtd><mtd><mn>...</mn></mtd><mtd><msub><mi>v</mi><mrow><mi>M</mi><mi>N</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000935924850000023.GIF" wi="1129" he="292" /></maths>其中,s<sub>Ii</sub>表示优先级为i的业务的第I个业务初始化控制速率,I=1,2,...,M,i=1,2,...,N,v<sub>Ii</sub>表示优先级为i的业务的第I个业务对应的控制速率变化大小,N表示过载业务的优先级;步骤5‑2、根据M组不同优先级的过载业务的控制速率,分别计算各业务的能效值,从计算获得的能效值中选择每组业务的能效最大值,并将上述能效最大值放置于对应业务控制速率的向量中,获得M组向量,具体为:将第I组不同优先级过载业务的最大能效值E<sub>I</sub>及其控制速率存放于向量p<sub>I</sub>中,即向量p<sub>I</sub>=[s<sub>I1</sub>,s<sub>I2</sub>,...,s<sub>IN</sub>,E<sub>I</sub>];根据能效值大小,从向量p<sub>I</sub>中选取初始最优向量p<sub>g</sub>,即能效值最大向量,p<sub>g</sub>=[s<sub>g1</sub>,s<sub>g2</sub>,...,s<sub>gN</sub>,E<sub>max</sub>],1≤g≤M,E<sub>max</sub>为M个最优能效值E<sub>I</sub>中能效值最大值;步骤5‑3、确定初始温度;公式如下:T<sub>0</sub>=E<sub>max</sub>/ln 5               (6)其中,T<sub>0</sub>表示初始温度;步骤5‑4、确定当前温度下各向量p<sub>I</sub>的适配值TF(p<sub>I</sub>):<maths num="0006"><math><![CDATA[<mrow><mi>T</mi><mi>F</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>I</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msup><mi>e</mi><mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>E</mi><mi>I</mi></msub><mo>-</mo><msub><mi>E</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>)</mo></mrow><mo>/</mo><msub><mi>T</mi><mi>t</mi></msub></mrow></msup><mrow><munderover><mo>&Sigma;</mo><mrow><mi>I</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msup><mi>e</mi><mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>E</mi><mi>I</mi></msub><mo>-</mo><msub><mi>E</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>/</mo><msub><mi>T</mi><mi>t</mi></msub></mrow></msup></mrow></mfrac></mrow>]]></math><img file="FDA0000935924850000031.GIF" wi="485" he="194" /></maths>其中,e表示自然对数,T<sub>t</sub>表示当前迭代时的温度,t=1时,T<sub>t</sub>=T<sub>0</sub>;并根据向量p<sub>I</sub>的适配值,采用轮盘赌方法从M组向量中选择一组向量更新初始最优向量p<sub>g</sub>;步骤5‑5、对向量p<sub>I</sub>和最优向量p<sub>g</sub>进行更新,具体如下:更新公式如下:<img file="FDA0000935924850000032.GIF" wi="1537" he="418" />其中,v<sub>Ii</sub>(t)表示本次迭代中的优先级为i的业务的第I个业务对应的控制速率变化大小;v<sub>Ii</sub>(t+1)表示下一次迭代中的优先级为i的业务的第I个业务对应的控制速率变化大小;p<sub>Ii</sub>表示向量p<sub>I</sub>中能效最大的控制速率;p<sub>gi</sub>表示全局能效最大的控制速率,s<sub>Ii</sub>(t)表示表示本次迭代中的优先级为i的业务的第I个业务对应的控制速率;s<sub>Ii</sub>(t+1)表示下一次迭代中的优先级为i的业务的第I个业务对应的控制速率;<img file="FDA0000935924850000033.GIF" wi="35" he="42" />表示速度压缩因子,ω<sub>1</sub>、ω<sub>2</sub>为学习因子,设置为2,r<sub>1</sub>、r<sub>2</sub>为[0,1]之间的随机数,t表示迭代次数;将更新获得的新的不同优先级过载业务的控制速率和控制速率变化值替换至矩阵S<sub>MN</sub>和矩阵V<sub>MN</sub>中,进而对向量p<sub>I</sub>进行更新,并从更新后所有组向量p<sub>I</sub>中选择出能效值最大向量,将更新后获得的能效值最大向量的能效值与向量p<sub>g</sub>的能效值进行比较,若更新后能效值最大向量的能效值大于向量p<sub>g</sub>的能效值,则对向量p<sub>g</sub>进行替换更新;否则不更新;步骤5‑6、进行退温操作,更新温度值;T<sub>t+1</sub>=λT<sub>t</sub>T<sub>t+1</sub>表示下一次迭代时的温度;λ表示退温系数,取值范围为0~1;步骤5‑7、判断是否达到迭代次数阈值,若是,则获得最终最优向量,即获得不同优先级过载业务的中间控制速率,否则返回执行步骤5‑4;步骤6、采用遗传算法求解能效最大时不同优先级过载业务的控制速率最优解,通过选择、交叉、变异操作获得不同优先级过载业务的最终控制速率;步骤7、根据获得的不同优先级过载业务的最终控制速率,设置计数器,即设定下一周期内接收业务的数量,实现对应用服务器过载的控制;步骤8、判断本采样间距内所有业务是否均处理完成,若是,则将采样间隔减一,等待接收新业务,并返回执行步骤1;否则继续对剩余业务进行处理。
地址 100761 北京市西城区长安街86号