论文中需要一个专门针对于边缘计算模块的仿真测试平台,所以找到了一个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初体验之安装及初步使用相关推荐

  1. Synopsys初体验——软件安装篇

    Synopsys初体验--软件安装篇 前言 一.虚拟机VMware的安装与使用 1.软件安装 2.创建自己的虚拟机 二.Synopsys系列软件的安装 前言 时光飞逝,转眼间已经是将要毕业的人了.之前 ...

  2. 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)

    欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 本文为大家带来[Go+ ...

  3. XENAPP 7.6 和XENDESKTOP 7.6 初体验之一 安装

    阅读全文 环境: 服务器操作系统:Microsoft Windows Server 2012 R2 Datacenter vCPU: 2 Cores(E5-2620 @ 2.0GHz) vRAM:4G ...

  4. v语言初体验,安装,使用

    6.23号v发布当天并没有安装使用,只是简单阅读了一下文档,6.23号看还是0.0.12版本,今天已经更新到0.1.1,前期的版本的更新确实很快,今天体验一下 由于是发布不久,目前还没有打包好的可执行 ...

  5. KVM之初体验——QEMU安装虚拟机

    QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor,  VMM).QEMU主要提供两种功能给用户使用.一是作为用户态模拟器,利用动态代码翻译机制来执 ...

  6. 【3】一铭操作系统初体验,安装ope…

    经过[1]和[2]的步骤以后,已经安装了众多的依赖包 也许opengl开发包已经安装在里面了.ubuntu11.10启动vbox报错libGL.so.1的问题 #find / -name libGL. ...

  7. 【1】一铭操作系统初体验,安装jav…

    放入光盘启动的时候,略有些云里雾里. 选择第一个选项才是正确的.后面的2个一键安装总给我感觉太过于自动,生怕抹掉了原来的win7操作系统. 安装很快完成. 目前这个版本很可惜,缺乏对win快捷键的支持 ...

  8. Java开发 - Redis初体验

    前言 es我们已经在前文中有所了解,和es有相似功能的是Redis,他们都不是纯粹的数据库.两者使用场景也是存在一定的差异的,本文目的并不重点说明他们之间的差异,但会简要说明,重点还是在对Redis的 ...

  9. 【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 ...

最新文章

  1. 【转】我的第一个Python小程序
  2. Byte和byte[]数组
  3. 写一段代码提高内存占用_记录一次生产环境中Redis内存增长异常排查全流程!...
  4. 第三章·MySQL版本区别及管理
  5. linux gdb 寄存器,x86 调试寄存器
  6. 约瑟夫问题的数学方法
  7. pcb布线注意点:晶振
  8. 关于学习Godot时遇到的问题(未解决)
  9. Mybatis插件原理
  10. 校验和checksum、哈希值是什么?
  11. 阿里云企业邮箱标准版多域名绑定
  12. PQ8.05硬盘分区图文教程
  13. 数据表底层的B+树的叶子结点为啥用类似双链表连接起来
  14. 阿里RocketMQ创始人首次分享出这份RocketMQ技术内木神级架构手册
  15. Windows 10实用优化辅助工具
  16. Unity3d:UGUI,UI与特效粒子层级,2018.2以上版本BakeMesh,粒子在两个Image之间且在ScrollView
  17. 三星note5 android9,史上最快!三星公布新版安卓9.0升级名单:Note FE在内
  18. Linux开源存储全栈详解:从Ceph到容器存储
  19. python语言平台无关_从零开始学Python自然语言处理(十二)——上下文无关文法...
  20. 广西现代职业技术学院的计算机怎么样,广西现代职业技术学院宿舍条件

热门文章

  1. 互联网之达芬奇密码——信仰互联网
  2. gif透明背景动画_Gif 编辑器合集
  3. iOS9中如何在日历App中创建一个任意时间之前开始的提醒(二)
  4. 与matlab有关的课程设计,MATLAB课程设计
  5. 关于RTKLIB中用多普勒检测周跳方法的改进和思考
  6. 中国真空溅射镀膜机行业市场供需与战略研究报告
  7. 程序员需要具备的能力
  8. WPS表格如何实现单元格内粘贴图片
  9. h5平台腾讯定位地图应用key申请的方法
  10. Excel错误“不能将对象移到工作表外”解决方法