云计算CloudSim20221128

在写顺序策略调度虚拟机时出现了问题

image-20221128223534460

原本应该是设置4台虚拟机8个任务按顺序分配,但是这里只有四个任务核两台机器

发现日志中有这么几行

image-20221128233545065

在host中分配虚拟机失败 因为MIPS和RAM限制?

image-20221128233613051

应该跑有4个虚拟机,但是这里好像只成功建立了两个

网上找了一篇博客

https://blog.csdn.net/HuanWoRMB/article/details/91410023

里面有提到这个问题

image-20221128223821776

重新捋一捋主机、虚拟机、pe之间的关系

一台主机(物理机)可以有一个或多个pe,然后一台主机上可以跑多个虚拟机,这些虚拟机共同使用这一台主机的所有pe的mip?

上面说到0和3两台虚拟机创建成功,而1和2失败

看一下它们的mip

image-20221128233728106

这里我给四台虚拟机分配的mip分别是1000、2000、1500、500

我在数据中心中创建的每台host只有一个pe,pe的mip都是1000

image-20221128233816420

如果我把这里每个pe的mip改为2000呢?

image-20221128234331472

成了

疑问?这里一个pe只能有一个虚拟机吗?不可以多个虚拟机共享pe的计算资源吗?

以及一个虚拟机可以用几个pe资源?

博客中有提到:

image-20221128234914449

这里博主是以CloudSimExample5为例讲解的

因为这里是SpaceShared,虚拟机的分配策略是每个pe只有一个虚拟主机

我的顺序策略调度的代码是在CloudSimExample1的基础上移植的

看一看Eample1的分配策略会发现

这里用的是TimeShared

image-20221128235455440

TimeShared和SpaceShared有什么区别?

https://blog.csdn.net/m0_37671741/article/details/83867088

看到这篇博客里的图突然想起来老师上课介绍过)

img

又看了一遍ppt 感觉差不多了

感觉类似于伪并行

回到刚才的疑问

其实按照这里介绍空间共享和时间共享的例子就已经可以解答了

一个虚拟机可以用多个pe(question3),多个虚拟机可以分别采用时间共享和空间共享策略来共享使用主机的pe资源(question2)

关于question1:这里一个pe只能有一个虚拟机吗?

由于这里我每个主机只设置了一个pe(mip=2000的情况下),而且这一个pe的值刚好只够012三个虚拟机之中跑任意一个或者是0+3或2+3的情况?

先更改host的VmSchedule策略试试

VmScheduleTimeShared:

image-20221129001358412

VmSchduleSpaceShared:

image-20221129001333595

好像并没有什么区别

看了看上面的创建vm的日志也都是一个vm对应一个host

应该是因为一个vm对应一个host导致的没有区别

所以我要创建的host数小于vm数?这样才会多个vm分配到同一个host吗?

确实创建3个host和4个vm时会自动把第4个vm也就是vm3分配到host0中

但是之前为什么不行呢?

因为前面报错的时候除了MIPS限制外还有一条

image-20221129002645826

RAM限制

因为我之前把每个虚拟机的内存调成了2048

每个主机的内存也调成了2048

(本来我以为这样才保证一台主机只有一个虚拟机?但是发现并不是)

因为我又看了看Example5的内存

发现每个虚拟机的内存都是512mb,而每个主机的内存是2048

当我把extended1的虚拟机mips更换后(原本是1000,2000,1500,500)

image-20221129003328617

发现第二个vm即vm1即500mip的那个vm是独占一个host的,而最后一个vm会分配失败

image-20221129003502230

所以这里默认的分配是优先满足一个vm一个host,当vm不能独占一个host时才考虑和其他vm挤同一个host,当空间(mip或ram(我还没试,我猜也是这样))足够时才可以多个vm挤同一个host,当空间不足时就会分配失败。

那么能不能改变这样的分配策略呢?这点我还不清楚

暂时先考虑到这里,因为这里的虚拟机分配策略好像也不在这次实验的重点?

虽然很感兴趣 但还是先把任务分配策略搞定后再继续考虑吧。

突然好像又想明白了

虚拟机和主机默认是按照顺序分配

如果按照默认顺序分配就会出现上面说的情况

但是如果我们调换策略就能使更多的vm分配成功(比如mip贪心)

好像这也算是一种调度策略?(主机层面)

不过和任务调度策略还是有很多不同

好像确实不算这次实验的重点

虚拟机分配的策略可以以后再研究研究

然后这里对应的应该是主机层面的分配策略

那么任务层面的呢?

在上面

image-20221129001908899

这里Example1默认的是SpaceShared

换成TimeShared呢?

image-20221129002115479

果然是同时运行,但是总时长还是不变的

收获不少

感觉对后面写任务调度策略有不少帮助

本来打算写遗传算法的

但是发现参考的学长把遗传算法写过了(顺序、贪心、遗传)

顺序是最基本的,然后贪心比较简单我也考虑写一下

遗传和蚁群两种先优先写蚁群吧(毕竟遗传学长写过了)

有时间再写一写遗传(虽然时间好像不多了)


__EOF__

本文作者cheng_zhi
本文链接https://www.cnblogs.com/chengzhid/p/16937203.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cheng_zhi  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示