CloudSim

  • CloudSim是墨尔本大学云计算和分布式系统实验室推出的云计算模拟软件。它可以使研究者规避实际部署的诸多不便(比如说资金缺乏等因素),在单机上即可实现对大规模云集群的模拟和相应算法的测试。好了,闲话少说。下面,我将分节对CloudSim的使用和学习心得进行一个简单的介绍。

CloudSim入门

下面介绍的例子以cloudSim中的示例程序为主,cloudSim版本为3.0.3.

1. 重点介绍的几个基础类:
  • Cloudlet


    对应的是云端的应用
  • Vm


    对应的是虚拟机,封装了虚拟机的属性和行为
  • Broker


    对应的是用户代理,是云端用户的代表.包括虚拟机和云应用在内的资源都要绑定到Broker.
  • Host


    对应的是物理主机
  • Datacenter


    对应的是数据中心,所有的物理主机资源必须绑定到数据中心.数据中心至少要创建1个.
2. 进行模拟编程的基本步骤:
  • 初始化CloudSim
  • 创建数据中心Datacenter
  • 创建用户代理Broker
  • 创建虚拟机Vm
  • 创建应用Cloudlet
  • 将云端应用绑定到指定的虚拟机
  • 开启模拟仿真
  • 结束模拟仿真
  • 打印输出
3. 物理主机的创建

需要的参数 @parameter :

  1. 主机编号;

  2. 内存;

  3. 网络带宽;

  4. 外存容量;

  5. cpu列表;

  6. 虚拟机调度策略(主机上的)

     new Host(
    hostId,
    new RamProvisionerSimple(ram),
    new BwProvisionerSimple(bw),
    storage,
    peList,
    new VmSchedulerTimeShared(peList)
    );
4. 数据中心的创建

首先创建数据中心特性:

需要的参数 @parameter :

  1. 主机架构

  2. 操作系统

  3. 虚拟机监视器种类

  4. 时区

  5. cpu的使用费用

  6. 内存的使用费用

  7. 外存的使用费用

  8. 带宽的使用费用

     new DatacenterCharacteristics(
    arch, os, vmm, hostList, time_zone, cost, costPerMem,
    costPerStorage, costPerBw);

创建数据中心:

  1. 数据中心的名字

  2. 数据中心特性

  3. 虚拟机的创建策略

  4. 存储设备列表

     new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
5. 虚拟机的创建

需要的参数 @parameter:

  1. 虚拟机编号

  2. 用户

  3. MIPS(Tips:CPU是由MIPS来标定其计算能力的)

  4. 镜像大小(MB)

  5. 内存大小(MB)

  6. 网络带宽

  7. cpu数量

  8. 虚拟机监视器类型

  9. 应用调度策略(虚拟机上的)

     new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
6. 应用的创建

需要的参数 @parameter :

  1. 应用编号

  2. 执行时的应用长度(MI)

  3. 要使用到的处理器数量

  4. 提交应用前的文件大小(byte)

  5. 应用执行完成后的文件大小(byte)

  6. cpu的使用模型/策略

  7. ram的使用模型/策略

  8. 网络带宽的使用模型/策略

     new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
7. 用户的创建

一般情况下,Broker的创建需要自定义以适应不同的用户策略.

CloudSim学习的更多相关文章

  1. CloudSim源代码学习——任务单元(Cloudlet)

    /* * Title: CloudSim Toolkit * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Sim ...

  2. CloudSim源代码学习——服务代理商(DatacenterBroker)

    DatacenterBroker.java文件如下: (其中,相关语句已经做好标注) /* * Title: CloudSim Toolkit * Description: CloudSim (Clo ...

  3. CloudSim源代码学习——虚拟机(VM)

    package org.cloudbus.cloudsim; import java.util.ArrayList;//This class provides methods to manipulat ...

  4. CloudSim源代码学习——云数据中心(Datacenter)

    package org.cloudbus.cloudsim; import java.text.DecimalFormat;//十进制 import java.util.ArrayList; impo ...

  5. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  6. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  7. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  8. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. Elasticsearch-集群增加节点

    ES-在集群中加入节点 查看分片信息 FengZhendeMacBook-Pro:nacos FengZhen$ curl 'localhost:9200/_cat/shards?v' index s ...

  2. 小记---------手动执行脚本正常执行,使用crontab定时执行时 不执行

    可能出现的原因就是因为crontab不会从用户的/etc/profile文件中读取环境变量,所以就出现 使用定时crontab执行时 无法执行 抛错 所以在使用crontab 定时执行脚本时  在脚本 ...

  3. Integer类的常量池

  4. noip2015day2-运输计划

    题目描述 公元$ 2044 $年,人类进入了宇宙纪元. \(L\) 国有 \(n\) 个星球,还有 \(n-1\) 条双向航道,每条航道建立在两个星球之间,这 \(n-1\) 条航道连通了 \(L\) ...

  5. CF 1136C Nastya Is Transposing Matrices

    题目链接:http://codeforces.com/problemset/problem/1136/C 题目分析 看了题目之后,第一想法:任意位置都可以倒置,要是枚举,铁定的超时.所以需要探索规律. ...

  6. AppCan适配问题

    使用AppCan调试中心时,屏幕适配是个问题,经过多次调试总结出如下经验: 1,使用HD+(1560 x 720):显示错乱 2,使用FHD+ (2340 x 1080):显示错乱 3,HD (128 ...

  7. python中常见的一些错误异常类型

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的 ...

  8. React结合AntD的upload组件写头像上传

    upload组件里面action就是调upload接口,获取图片url地址 setImg获取url,点击保存传到后台   action 上传头像方法 //上传头像 changeImg = info = ...

  9. 解决 "Could not autowire. No beans of 'SationMapper' type found" 的问题

    网上查找的方法,附上原文链接:https://blog.csdn.net/Coder_Knight/article/details/83999139 方法1:在mapper文件上加@Repositor ...

  10. 将div的内容生成清晰的PDF、高清PDF

    //需要引入html2canvas.js.jquery.js文件 html: <button type="button" class="btn btn-primar ...