"\t%d customers arrived in %d minutes\n", totalArrivedCustomers, SIMULATION_TIME_LENGHT); System.out.printf("\tArrival rate: %.2f customers per minute. Customers interarrival time: %.2f minutes in average\n", poisson.getLambda(), poisson.getInterArrivalMeanTime()); "%.2f customers expected by each %d minutes of simulation with interarrival time of %.2f minutes\n", poisson.getLambda()*SIMULATION_TIME_LENGHT, SIMULATION_TIME_LENGHT, poisson.getInterArrivalMeanTime());
public HostFaultInjectionExample1() { /*Enables just some level of log messages. Make sure to import org.cloudsimplus.util.Log;*/ //Log.setLevel(ch.qos.logback.classic.Level.WARN); System.out.println("Starting " + getClass().getSimpleName()); simulation = new CloudSim(); Datacenter datacenter = createDatacenter(); broker = new DatacenterBrokerSimple(simulation); createAndSubmitVms(); createAndSubmitCloudlets(); createFaultInjectionForHosts(datacenter); simulation.start(); new CloudletsTableBuilder(broker.getCloudletFinishedList()).build(); System.out.printf( "\n# Mean Number of Failures per Hour: %.3f (1 failure expected at each %.2f hours).\n", MEAN_FAILURE_NUMBER_PER_HOUR, poisson.getInterArrivalMeanTime()); System.out.printf("# Number of Host faults: %d\n", fault.getNumberOfHostFaults()); System.out.printf("# Number of VM faults (VMs destroyed): %d\n", fault.getNumberOfFaults()); System.out.printf("# Time the simulations finished: %.4f hours\n", simulation.clockInHours()); System.out.printf("# Mean Time To Repair Failures of VMs in minutes (MTTR): %.2f minute\n", fault.meanTimeToRepairVmFaultsInMinutes()); System.out.printf("# Mean Time Between Failures (MTBF) affecting all VMs in minutes: %.2f minutes\n", fault.meanTimeBetweenVmFaultsInMinutes()); System.out.printf("# Hosts MTBF: %.2f minutes\n", fault.meanTimeBetweenHostFaultsInMinutes()); System.out.printf("# Availability: %.2f%%\n\n", fault.availability()*100); System.out.println(getClass().getSimpleName() + " finished!"); }
/** * Creates the fault injection for host * * @param datacenter */ private void createFaultInjectionForHosts(final Datacenter datacenter) { PoissonDistr poisson = new PoissonDistr(MEAN_FAILURE_NUMBER_PER_HOUR, getSeed()); faultInjection = new HostFaultInjection(datacenter, poisson); getFaultInjection().setMaxTimeToFailInHours(MAX_TIME_TO_GENERATE_FAILURE_IN_HOURS); for (DatacenterBroker broker : getBrokerList()) { getFaultInjection().addVmCloner (broker, new VmClonerSimple(this::cloneVm, this::cloneCloudlets)); } System.out.printf( "\tFault Injection created for %s.\n\tMean Number of Failures per hour: %.6f (1 failure expected at each %.4f hours).\n", datacenter, MEAN_FAILURE_NUMBER_PER_HOUR, poisson.getInterArrivalMeanTime()); }