CloudSim学习
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 :
主机编号;
内存;
网络带宽;
外存容量;
cpu列表;
虚拟机调度策略(主机上的)
new Host(
hostId,
new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),
storage,
peList,
new VmSchedulerTimeShared(peList)
);
4. 数据中心的创建
首先创建数据中心特性:
需要的参数 @parameter :
主机架构
操作系统
虚拟机监视器种类
时区
cpu的使用费用
内存的使用费用
外存的使用费用
带宽的使用费用
new DatacenterCharacteristics(
arch, os, vmm, hostList, time_zone, cost, costPerMem,
costPerStorage, costPerBw);
创建数据中心:
数据中心的名字
数据中心特性
虚拟机的创建策略
存储设备列表
new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
5. 虚拟机的创建
需要的参数 @parameter:
虚拟机编号
用户
MIPS(Tips:CPU是由MIPS来标定其计算能力的)
镜像大小(MB)
内存大小(MB)
网络带宽
cpu数量
虚拟机监视器类型
应用调度策略(虚拟机上的)
new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
6. 应用的创建
需要的参数 @parameter :
应用编号
执行时的应用长度(MI)
要使用到的处理器数量
提交应用前的文件大小(byte)
应用执行完成后的文件大小(byte)
cpu的使用模型/策略
ram的使用模型/策略
网络带宽的使用模型/策略
new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
7. 用户的创建
一般情况下,Broker的创建需要自定义以适应不同的用户策略.
CloudSim学习的更多相关文章
- CloudSim源代码学习——任务单元(Cloudlet)
/* * Title: CloudSim Toolkit * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Sim ...
- CloudSim源代码学习——服务代理商(DatacenterBroker)
DatacenterBroker.java文件如下: (其中,相关语句已经做好标注) /* * Title: CloudSim Toolkit * Description: CloudSim (Clo ...
- CloudSim源代码学习——虚拟机(VM)
package org.cloudbus.cloudsim; import java.util.ArrayList;//This class provides methods to manipulat ...
- CloudSim源代码学习——云数据中心(Datacenter)
package org.cloudbus.cloudsim; import java.text.DecimalFormat;//十进制 import java.util.ArrayList; impo ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
随机推荐
- 暴力破解-H3C路由器-MSR900
作者:zptxwd@gmail.com 最后修改日期2017年5月10日 转载请保留出处 声明,本文仅用于技术交流和学习,不得用于任何商业用途及违法行为. 所暴力破解的设备信息 华三路由器 ...
- [百度知道]ssm和ssh各自的优势
https://zhidao.baidu.com/question/875108451824176892.html SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernat ...
- Java基础(四)
概述 常用快捷键 数组 概述 数组是一种引用类型.变量只可以存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型. 如果需要存储的数据很多,那么定义多个变量很麻烦: I ...
- java 不可变对象 final Collections guava 简单样例
本地环境 jdk1.8 连接 Google Guava官方教程(中文版) journaldev 说明 java的final关键字大家都了解,但是final修饰的如果是引用类型,那么不可修改的其实只是重 ...
- 列出连通集(DFS及BFS遍历图) -- 数据结构
题目: 7-1 列出连通集 (30 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递 ...
- 初识JavaScript(三)
初识JavaScript(三) 我从上一讲<初识JavaScript(二)>了解到了类型.值.变量的定义以及特点,本节我将学习到JavaScript中的算术运算.二进制浮点数和四舍五入的错 ...
- 04: CI(持续集成)/CD(持续交付/持续部署)
1.1 持续集成.持续交付 介绍 参考博客:https://www.cnblogs.com/cay83/p/8856231.html 1.传统交付 1. 传统软件的开发与交付的周期都很漫长,从需求 ...
- day 14 装饰器
装饰器:装饰,装修,房子就可以住,如果装修,不影响你住,而且体验更加,让你生活中增加了很多功能:洗澡,看电视,沙发.器:工具.开放封闭原则:开放:对代码的拓展开放的, 更新地图,加新枪,等等.封闭:对 ...
- java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter的解决方案
白天在实验室的电脑上的项目搭起来,晚上回到宿舍发现跑不起来了,网上查到的大多不是想要的答案. 最终的解决方案是maven clean一下再重新package.
- nginx正常启动,ip直接访问失败问题
1.查看iptables服务示范启动 service iptables status 2.没有安装的话安装 yum install iptables-services 3.修改配置文件, 添加一行: ...