Note: This repository is a fork of Cloudslab/cloudsim.
CloudSim is a framework for modeling and simulation of cloud computing infrastructures and services. It provides a generalized and extensible simulation environment that enables modeling, simulation, and experimentation of emerging cloud computing infrastructures and application services. Researchers and developers can use CloudSim to focus on specific system design issues without getting concerned about the low-level details related to cloud-based infrastructures and services.
CloudSim was developed at the Cloud Computing and Distributed Systems (CLOUDS) Laboratory at the University of Melbourne.
A custom example demonstrating energy-efficient VM placement using CloudSim's power package:
- Uses heterogeneous hosts (HP ProLiant ML110 G4 and G5) with real SPECpower-based power models
- Shows the non-linear relationship between CPU utilization and power consumption
- Compares power efficiency between different host types at various utilization levels
- Reports per-host energy consumption and consolidation insights
Location: modules/cloudsim-examples/src/main/java/org/cloudbus/cloudsim/examples/power/EnergyEfficientPlacementExample.java
Run:
cd modules/cloudsim-examples
mvn exec:java -Dexec.mainClass="org.cloudbus.cloudsim.examples.power.EnergyEfficientPlacementExample"
For new research projects, consider using CloudSim Plus, a modern re-engineering of CloudSim that provides:
- Java 17+ support with clean, modern API design
- Built-in power models and energy monitoring with
PowerMeter - VM migration policies with configurable utilization thresholds
- RL-based VM allocation policy (research extension)
- 90+ ready-to-run examples
- Active maintenance and extensive documentation
- Modeling and simulation of large-scale cloud computing data centers
- Virtualized server hosts with customizable resource provisioning policies
- Application container modeling and simulation
- Energy-aware computational resource simulation
- Data center network topologies and message-passing applications
- Federated cloud simulation
- Dynamic insertion of simulation elements with stop and resume support
- User-defined policies for host-to-VM allocation and resource provisioning
- Java 8 or higher
- Apache Maven 3.x
-
Clone the repository:
git clone https://github.com/danielcregg/cloudsim.git cd cloudsim -
Build with Maven:
mvn clean install
CloudSim includes several example simulations in the modules/cloudsim-examples directory:
- CloudSimExample1-8 -- Basic cloud simulation scenarios demonstrating VM provisioning, cloudlet scheduling, and datacenter management
- Container examples -- Container-based cloud simulation with overbooking and placement strategies
- Network examples -- Network topology simulation with BRITE integration
- Power examples -- Energy-aware simulations using PlanetLab workload traces and various VM consolidation algorithms (IQR, LR, MAD, THR)
- EnergyEfficientPlacementExample -- Custom energy-efficient VM placement with SPECpower models (NEW)
Run an example:
cd modules/cloudsim-examples
mvn exec:java -Dexec.mainClass="org.cloudbus.cloudsim.examples.CloudSimExample1"
cloudsim/
├── modules/
│ ├── cloudsim/ # Core simulation library
│ └── cloudsim-examples/ # Example simulations
│ └── .../power/
│ ├── Constants.java
│ ├── Helper.java
│ ├── RunnerAbstract.java
│ ├── EnergyEfficientPlacementExample.java # NEW
│ ├── planetlab/ # PlanetLab workload trace examples
│ └── random/ # Random workload examples
├── documentation/ # Project documentation and release notes
├── distribution/ # Distribution packaging
└── pom.xml # Maven parent POM
- Calheiros, R.N., Ranjan, R., Beloglazov, A., De Rose, C.A.F., and Buyya, R. CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms. Software: Practice and Experience, 41(1), 23-50, 2011.
- Beloglazov, A. and Buyya, R. Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers. Concurrency and Computation: Practice and Experience, 24(13), 1397-1420, 2012.
This project is licensed under the Apache License 2.0. See the license file for details.