EdgeCloudSim初体验之安装及初步使用
论文中需要一个专门针对于边缘计算模块的仿真测试平台,所以找到了一个EdgeCloudSim的开源平台,又是基于Java进行开发的,觉得很不错,但是中文网络环境中好像还没有对其的教程,在下不才,打算写一系列博文简单介绍分享一些这个软件的使用和踩过的坑。
简介
EdgeCloudSim是一种应用于边缘计算中计算和网络的仿真测试平台,它基于CouldSim进行开发,但添加了相当多的功能,因此可以有效地用于边缘计算方案。EdgeCloudSim是一个开源工具。
包含的功能主要有:
- 在Edge或Cloud VM之间进行任务迁移。
- 移动和边缘设备以及云数据中心的能耗模型。
- 通过考虑拥塞或其他参数(例如移动设备与WiFi接入点之间的距离)来添加概率网络故障模型。
- 用于显示网络拓扑的可视工具。
下载
直接中GitHub上clone下来就好了。
下载地址
安装
EdgeCloudSim需要在Linux环境或者MAC OS中能使用,Windows其实也可以,但是使用方法就不同了,那么将下载下来的tar包在Linux环境中进行解压,开箱即用。
我们就会得到这样的一个目录。其中bin文件夹刚解压的时候是不会有的,当编译Java文件之后产生class字节码文件,就产生这个bin文件夹用于存放字节码文件。
同时,EdgeCloudSim是基于Java进行开发的,所以我们还需要安装JDK环境,版本是1.8及以上。
跑一个demo
在scripts文件夹下已经预先写了很多demo,我们选择sample_app1。
Linux环境下
编译
首先我们编译Java代码,这里已经有一个预先写好的脚本,运行这个脚本就会帮我们编译代码,生成class文件。如果没有任何报错,编译就算成功了,外面的目录下也会生成一个bin文件夹。
sh compile.sh
运行
然后我们就可以通过runner脚本来运行Java程序了。这里需要注意的是,如果我们不加入运行参数,它的默认配置文件路径存在一些问题,会报错:
java.io.FileNotFoundException: /home/kt/edge/EdgeCloudSim-master/scripts/sample_app1/scripts/sample_app1/config/applications.xml (没有那个文件或目录)
所以,这里有两个办法,简单粗暴的就是在报错的路径下重新复制一份配置文件,更合理的就是填入runner.sh的运行参数,我更推荐后者。我们打开runner.sh文件,可以看到如下参数顺序:
script_root_path="$(dirname "$(readlink -f "$0")")"
simulation_out_folder=$1
scenario_name=$2
edge_devices_file=$3
applications_file=$4
iteration_number=$5scenario_out_folder=${simulation_out_folder}/${scenario_name}/ite${iteration_number}
scenario_conf_file=${script_root_path}/config/${scenario_name}.properties
scenario_edge_devices_file=${script_root_path}/config/${edge_devices_file}
scenario_applications_file=${script_root_path}/config/${applications_file}
这里$0是Shell本身的文件名,而后面5个参数我们可以在输入shell指令的时候手动写入,这样就不会在Java运行的时候用到默认文件路径而产生错误了。这五个参数分别表示:1、仿真结果输出文件夹路径;2、仿真场景名称;3、边缘设备配置文件名称;4、应用文件名称、5、版本号。
这里是我的运行shell的输入信息,结果输出路径依个人而定:
结果
当运行runner.sh之后没有报错,那么仿真程序就正在运行了,可能需要等待比较长的时间。
结束之后,会在我们指定的输入路径之下产生很多仿真过程的日志文件。
打开ite1.log,就可以看到具体参数信息,包括边缘计算过程中的性能指标。
Windows环境下
其实也可以直接通过Java命令对代码进行编译和运行,但是,我们为了方便自己修改代码和调试,可以直接用idea来打开工程并运行。
如果使用idea的话,直接选择打开项目,然后选择文件夹EdgeCloudSim-master即可。例如要运行sample_app1,就选择src/applications/sample_app1文件下的MainApp,直接运行里面的main函数即可,注意修改配置和输出路径参数,创建输出文件夹。
绘图
这个工具包的作者在每个示例下面都提供了matlab的绘图函数,我们只需要改变相应的参数,就可以对结果日志文件中的数据进行提取绘制折线图,非常方便。
首先打开sample_app1下面的matlab文件夹,我们可以看到如下的matlab函数文件。
这里包含了对于仿真测试中各种性能结果的绘图函数,其中我们需要对getConfiguration函数进行修改,这个文件中包含了绘图所需的配置参数。
第一个参数表示了我们将结果日志存放的路径,第二个参数表示仿真的版本信息。这样,plotGenericResult函数会读取这个文件,然后得到具体日志信息,然后再由其他相应的函数调用进行绘图。
我们这里调用一个plotAvgFailedTask函数,看看效果。运行之后,在日志文件路径下,就会生成很多pdf文件,里面就是对应的统计图了。
EdgeCloudSim初体验之安装及初步使用相关推荐
- Synopsys初体验——软件安装篇
Synopsys初体验--软件安装篇 前言 一.虚拟机VMware的安装与使用 1.软件安装 2.创建自己的虚拟机 二.Synopsys系列软件的安装 前言 时光飞逝,转眼间已经是将要毕业的人了.之前 ...
- 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)
欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 本文为大家带来[Go+ ...
- XENAPP 7.6 和XENDESKTOP 7.6 初体验之一 安装
阅读全文 环境: 服务器操作系统:Microsoft Windows Server 2012 R2 Datacenter vCPU: 2 Cores(E5-2620 @ 2.0GHz) vRAM:4G ...
- v语言初体验,安装,使用
6.23号v发布当天并没有安装使用,只是简单阅读了一下文档,6.23号看还是0.0.12版本,今天已经更新到0.1.1,前期的版本的更新确实很快,今天体验一下 由于是发布不久,目前还没有打包好的可执行 ...
- KVM之初体验——QEMU安装虚拟机
QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM).QEMU主要提供两种功能给用户使用.一是作为用户态模拟器,利用动态代码翻译机制来执 ...
- 【3】一铭操作系统初体验,安装ope…
经过[1]和[2]的步骤以后,已经安装了众多的依赖包 也许opengl开发包已经安装在里面了.ubuntu11.10启动vbox报错libGL.so.1的问题 #find / -name libGL. ...
- 【1】一铭操作系统初体验,安装jav…
放入光盘启动的时候,略有些云里雾里. 选择第一个选项才是正确的.后面的2个一键安装总给我感觉太过于自动,生怕抹掉了原来的win7操作系统. 安装很快完成. 目前这个版本很可惜,缺乏对win快捷键的支持 ...
- Java开发 - Redis初体验
前言 es我们已经在前文中有所了解,和es有相似功能的是Redis,他们都不是纯粹的数据库.两者使用场景也是存在一定的差异的,本文目的并不重点说明他们之间的差异,但会简要说明,重点还是在对Redis的 ...
- 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验
----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafk ...
最新文章
- 【转】我的第一个Python小程序
- Byte和byte[]数组
- 写一段代码提高内存占用_记录一次生产环境中Redis内存增长异常排查全流程!...
- 第三章·MySQL版本区别及管理
- linux gdb 寄存器,x86 调试寄存器
- 约瑟夫问题的数学方法
- pcb布线注意点:晶振
- 关于学习Godot时遇到的问题(未解决)
- Mybatis插件原理
- 校验和checksum、哈希值是什么?
- 阿里云企业邮箱标准版多域名绑定
- PQ8.05硬盘分区图文教程
- 数据表底层的B+树的叶子结点为啥用类似双链表连接起来
- 阿里RocketMQ创始人首次分享出这份RocketMQ技术内木神级架构手册
- Windows 10实用优化辅助工具
- Unity3d:UGUI,UI与特效粒子层级,2018.2以上版本BakeMesh,粒子在两个Image之间且在ScrollView
- 三星note5 android9,史上最快!三星公布新版安卓9.0升级名单:Note FE在内
- Linux开源存储全栈详解:从Ceph到容器存储
- python语言平台无关_从零开始学Python自然语言处理(十二)——上下文无关文法...
- 广西现代职业技术学院的计算机怎么样,广西现代职业技术学院宿舍条件