1.一种Docker Swarm容器调度方法,其特征在于,包括:S1.为每个调度方案随机分配执行节点,根据节点的总资源负载值计算调度方案集合S=(T1,T2,…,Tm)中各调度方案Ti的适应度,i=1,2,…,m,所述资源包括CPU、内存、I/O负载、网络宽带和磁盘空间;
S2.把m个调度方案分为若干个子集,根据子集的策略阈值更新子集;
步骤S2具体包括:
S201.把m个调度方案根据适应度的大小降序排列并分为d个子集,每个子集包括v个调度方案,满足m=d×v,具体的划分过程为序号为a+(r‑1)d的调度方案进入第a个子集,a=
1,2,…,d,r为正整数;
S202.根据子集的策略阈值更新子集,判断子集是否满足f(Tb)‑f(Tw)>f(T)A,其中f(Tb)为子集的最优适应度,f(Tw)为子集的最差适应度,f(T)A为子集的平均适应度,当且仅当满足时利用以下公式更新子集内的最差解,Tn1=Tw+ds1(2)
还利用以下公式更新子集内次差的两个解,
Tn1,n2=Tw2,w3+ds2(4)其中,ds1和ds2表示移动步长,rand()表示取[0,1]之间的随机数,和 分别为第p个子集和第p+1个子集的最优解,Tw为第p个子集的最差解并在更新后被Tn1取代,Tw2,w3为第p个子集的次差的两个解并在更新后被Tn1,n2取代,Tg为调度方案集合S的最优解;
S3.重新混合所有调度方案为新的集合,重复步骤S1,根据各调度方案的适应度确定当前全局最优解,满足全局搜索终止条件时停止搜索并输出所述当前全局最优解,否则返回步骤S2。
2.根据权利要求1所述的Docker Swarm容器调度方法,其特征在于,所述步骤S1之前还包括:S0.初始化所述调度方案集合S=(T1,T2,…,Tm),每个调度方案包括n个任务,即Ti=(I1,I2,…,In)。
3.根据权利要求1所述的Docker Swarm容器调度方法,其特征在于,所述节点的总资源负载值的计算为 式中的ωi为资源负载的权重,xi为资源在该节点的负载值。
4.根据权利要求1所述的Docker Swarm容器调度方法,其特征在于,所述调度方案Ti的适应度的计算为 式中的N为节点总数,Li为第i个节点的总资源负载值, 为所有节点的总资源负载值的平均值。
5.根据权利要求1所述的Docker Swarm容器调度方法,其特征在于,所述步骤S202还包括:当子集不满足f(Tb)‑f(Tw)>f(T)A时随机选取两个子集,对两个子集的最优解利用以下公式进行交叉变异,其中,rand()表示取[0,1]之间的随机数, 为子集x的最优解并在交叉变异后被 取代, 为子集y的最优解并在交叉变异后被 取代。
6.根据权利要求1所述的Docker Swarm容器调度方法,其特征在于,所述全局搜索终止条件为达到最大迭代次数k。
7.一种调度系统,实施如权利要求1~6任一项所述的Docker Swarm容器调度方法,包括容器节点,适应度计算单元、更新单元和全局搜索单元,所述适应度计算单元用于根据各容器节点的总资源负载值计算调度方案集合S=(T1,T2,…,Tm)中各调度方案Ti的适应度,i=1,2,…,m,资源包括CPU、内存、I/O负载、网络宽带和磁盘空间;
所述更新单元用于执行如权利要求1~6任一项所述的步骤S2;
所述全局搜索单元用于根据各调度方案的适应度确定全局最优解并输出。