
los. In our case, we selected the Italy 1 dataset, al-
though datasets 2 and 3 were also available for use.
After reviewing the results in the reference paper, we
decided to simulate only the first day of data. This day
was deemed sufficiently representative, as the original
paper shows that all five days exhibit a similar usage
pattern.
Using this selected dataset, we generated a syn-
thetic workload by extracting and analyzing its arrival
rate over time, which served as the foundation for our
simulation inputs.
4.2 Synthetic Workload Generation
The workload was generated using a tool. This
tool, based on a configurable random seed, uses the
dataset’s arrival rate, timestamp, and service time as
inputs. A specific time window is selected for gener-
ating the synthetic workload. For instance, the 0.5x
workload was divided into four 6-hour segments; the
1.0x workload followed the same segmentation; the
1.5x workload was divided into three 6-hour segments
and three 2-hour segments; and finally, the 2.0x work-
load was split into twelve 2-hour segments.
For each of these segments, a cubic interpolation
function λ
f
was computed to represent the arrival rate
over time. This function provides a smooth approx-
imation of the number of incoming requests per sec-
ond, reflecting the original dataset’s behavior. Using
λ
f
, a synthetic workload is generated by uniformly
distributing requests within short intervals (e.g., one
second), where the number of requests per interval
is determined by the interpolated arrival rate at that
point in time.
This approach enables us to test various system
load conditions in a controlled and reproducible way.
It also ensures that, in future experiments, new simu-
lations with higher or lower load intensities can be ex-
ecuted and compared under the same framework and
methodology.
4.3 CloudSim Framework Extension
This part of the work involved several mod-
ifications to the CloudSim source code, in-
cluding changes to core classes such as
CloudletSchedulerSpaceShared and CloudSim,
as well as the development of new features such
as custom brokers, workload readers, and a con-
figuration system for easy model switching and
reproducibility.
We started by addressing a rounding error found
in the CloudletSchedulerSpaceShared class. The
issue was resolved by applying a patch that corrected
inaccuracies in the scheduling logic. In addition, we
modified the CloudSim class to expose the internal
future event queue, enabling more detailed logging
and better tracking of scheduled events throughout the
simulation.
To support reproducible and flexible testing, we
implemented a configuration system based on JSON
files. This system automatically creates datacenters
and virtual machines according to the provided in-
put. In our case, we simulate a single host with four
VMs. Since CloudSim does not distinguish between
physical cores, virtual cores, or threads, we manually
set the number of processing elements (PEs) for the
host to 60, representing the total processing capac-
ity needed. The configuration file also includes fields
to define the input workload trace file and the output
path for storing simulation results.
To efficiently load workloads and ensure com-
patibility with CloudSim, we developed several
new classes. The Workload class, which extends
SimEntity, is responsible for sending cloudlets to the
broker based on the synthetic workload data. A sub-
class, TracefileWorkload, handles the retrieval and
submission of individual or batched requests. These
requests are read from an iterator obtained through a
custom Dataloader class. Rather than loading the
entire workload into memory, this component reads
the data stream on demand, significantly reducing
memory consumption.
With this infrastructure in place, we created a cus-
tom broker capable of processing the event stream
from the workload. This broker extends the default
DatacenterBroker in CloudSim and includes sev-
eral optimizations to improve resource usage. For
instance, we eliminated internal cloudlet lists to re-
duce memory overhead. Instead, execution results are
written in real time as each cloudlet finishes. This
greatly improves scalability when simulating large
workloads.
With this infrastructure in place, we created a cus-
tom broker capable of processing the event stream
from the workload. This broker extends the default
DatacenterBroker in CloudSim and includes sev-
eral optimizations to improve resource usage. For
instance, we eliminated internal cloudlet lists to re-
duce memory overhead. Instead, execution results are
written in real time as each cloudlet finishes, which
greatly improves scalability when simulating large
workloads.Unlike the default DatacenterBroker,
which only supports static cloudlet submissions and
lacks temporal control, our CustomBroker can re-
ceive and process cloudlets dynamically, driven by
external workload traces. It uses a round-robin
scheduling policy to distribute requests among vir-
SIMULTECH 2025 - 15th International Conference on Simulation and Modeling Methodologies, Technologies and Applications
400