我想在Cloud sim中实现虚拟机迁移时间公式,我做了一个简单的方法,但它给了我错误的结果,问题是我需要在模拟中迁移虚拟机的列表,以便我可以计算和打印最终的总迁移时间,如果您有任何想法,请帮助我!
public static double getTotalMigrationTime(List<Vm> vms){
double Tmigr = 0;
for(Vm vm:vms){
if(vm.isInMigration()){
double Cj = vm.getRam();
double BWj = vm.getBw();
Tmigr += Cj/BWj;
}
}
return Tmigr;
}
您必须在PowerDatacenter类中添加迁移和能量公式,更准确地说是在UpdateCloudProcessing方法中,还必须在不忘记类中局部变量的情况下添加set and get方法,以节省迁移时间和能量。
// Migration Time
public double Tmigr = 0;
// Migration Energy
public double Emigr;
@Override
protected void updateCloudletProcessing() {
if (getCloudletSubmitted() == -1 || getCloudletSubmitted() == CloudSim.clock()) {
CloudSim.cancelAll(getId(), new PredicateType(CloudSimTags.VM_DATACENTER_EVENT));
schedule(getId(), getSchedulingInterval(), CloudSimTags.VM_DATACENTER_EVENT);
return;
}
double currentTime = CloudSim.clock();
double Pm = 4.5;
double sum = 0;
// if some time passed since last processing
if (currentTime > getLastProcessTime()) {
System.out.print(currentTime + " ");
double minTime = updateCloudetProcessingWithoutSchedulingFutureEventsForce();
if (!isDisableMigrations()) {
List<Map<String, Object>> migrationMap = getVmAllocationPolicy().optimizeAllocation(
getVmList());
if (migrationMap != null) {
for (Map<String, Object> migrate : migrationMap) {
Vm vm = (Vm) migrate.get("vm");
PowerHost targetHost = (PowerHost) migrate.get("host");
PowerHost oldHost = (PowerHost) vm.getHost();
// Calculates migration time and energy
double Cj = vm.getRam();
double BWj = (double)targetHost.getBw()/(2*8000);
Tmigr = Tmigr + Cj/BWj; // Time
sum = sum + Pm*(Cj/BWj);
Emigr = 4*sum; //energy
if (oldHost == null) {
Log.formatLine(
"%.2f: Migration of VM #%d to Host #%d is started",
currentTime,
vm.getId(),
targetHost.getId());
} else {
Log.formatLine(
"%.2f: Migration of VM #%d from Host #%d to Host #%d is started",
currentTime,
vm.getId(),
oldHost.getId(),
targetHost.getId());
}
targetHost.addMigratingInVm(vm);
incrementMigrationCount();
/** VM migration delay = RAM / bandwidth **/
// we use BW / 2 to model BW available for migration purposes, the other
// half of BW is for VM communication
// around 16 seconds for 1024 MB using 1 Gbit/s network
send(
getId(),
vm.getRam() / ((double) targetHost.getBw() / (2 * 8000)),
CloudSimTags.VM_MIGRATE,
migrate);
}
}
}
// schedules an event to the next time
if (minTime != Double.MAX_VALUE) {
CloudSim.cancelAll(getId(), new PredicateType(CloudSimTags.VM_DATACENTER_EVENT));
send(getId(), getSchedulingInterval(), CloudSimTags.VM_DATACENTER_EVENT);
}
setLastProcessTime(currentTime);
}
setMigrationTime(Tmigr); // Update Total Migration Time
setMigrationEnergy(Emigr); // Update Total Migration Energy
}
// sets migration time
public void setMigrationTime(double Tm){
Tmigr = Tm;
}
//gets migration time
public double getMigrationTime(){
return Tmigr;
}
//sets migration Energy
public void setMigrationEnergy(double Em){
Emigr = Em;
}
//gets total migration energy
public double getMigrationEnergy(){
return Emigr;
}
之后,您可以使用get方法获取迁移时间和能量,并在Helper类中打印它们,而不会忘记将能量转换为KWh。
//get Migration Time and energy from PowerDatacenter class
double Tmigr = datacenter.getMigrationTime();
double Emigr = datacenter.getMigrationEnergy()/(3600*1000);
Log.printLine(String.format("Migration Time : %.2f sec",Tmigr));
Log.printLine(String.format("Migration Energy : %.5f kWh",Emigr));
Cloudsim中的分时是如何工作的,没有代表时间片或量子的变量,那么循环的概念在Cloudsim中是如何验证的呢? 如果我们有50个Cloudlet,10个VM
我正试图从迁移到,但在所有更改之后,日志没有打印出来。我使用的“选项2”是https://logging.apache.org/log4j/2.x/manual/migration.html . 我添加了在我的libs文件夹中,并正确配置了在
问题内容: 我已经阅读了很多有关打印页码的网站,但是当我尝试打印html页面时,仍然无法显示它。 接下来是CSS代码: 我试图把这个页面规则放进去 在其外部,尝试将其放入中,但没有任何帮助使我在页面上显示页码。我尝试使用FireFox和Chrome(您知道基于WebKit的浏览器)。我认为问题出在我的HTML或CSS代码中。 有人可以告诉我一个在具有多个页面的大html页面中实现此规则的示例吗?我
我试图在iReport中实现一个简单的表达式,但无论我尝试什么,似乎都给了我一个错误。这似乎是一件很简单的事情,但每当我尝试用Java做任何事情时,我都需要大约20次尝试才能把它做好。 我所要做的就是在整数字段的值不为零时显示子报告。我正在对子报告控件使用打印时表达式。 以下是我尝试过的许多事情中的一些: 显然我的Java很烂。任何帮助都将不胜感激。谢谢
打印工作流程有时很复杂。首先了解所需的设置,然后再浏览到感兴趣的主题。 更多此类内容 设置打印文档 打印分色 印刷标记和出血 PostScript 打印 用色彩管理打印 打印渐变、网格和颜色混合 打印和存储透明图稿 叠印 陷印 打印预设
命令命令结果: 问题是我只有users_table,admins_table,volunteers_table,opinions_table和contact_tablelaravel迁移文件夹...他们从哪里来,从哪里迁移... 为什么会产生这个问题基本上我是在laravel应用程序中使用chatify实时聊天软件包所有以上消息收藏夹化身表都是该软件包的一部分,但我已经从laravel应用程序中删